【发布时间】:2019-06-10 22:53:41
【问题描述】:
我在 Traefik 后面的 Docker 中运行 Neo4J。 Web 界面 (7474) 在 https 上公开,按预期工作。
通过网络界面,我尝试连接到 bolt://localhost:7687,我希望它可以工作,毕竟它在同一个容器中运行。相反,我收到了消息:
"ServiceUnavailable: WebSocket 连接失败。由于您的网络浏览器的安全限制,此 Neo4j 驱动程序无法获得失败的原因。请使用您的浏览器开发控制台确定失败的根本原因。常见的原因包括数据库不可用,使用错误的连接 URL 或临时网络问题。如果您启用了加密,请确保您的浏览器配置为信任 Neo4j 配置使用的证书。WebSocket readyState 为:3"
反向代理使用由我们公司 CA 签署的内部证书。 Neo4J 容器具有可用的根证书。 连接的客户端也有可用的根证书。
当尝试连接到容器本身中的 localhost:7687 时,它按预期工作; Cypher shell 也是如此。
GitHub 上也有一些关于可能导致这些问题的 Java 版本的帖子 - 我已尝试使用 Oracle JDK 8、OpenJDK 8(HotSpot 和 J9)。
浏览器似乎也不相关 - 所描述的问题在 FF、Chrome 和 Safari 中重现。
【问题讨论】:
-
直接访问bolt://localhost:7687会有什么结果?
-
按预期工作。容器中的 Cypher Shell 也是如此。
标签: docker https neo4j reverse-proxy traefik