docker - 无法通过 dockerized Traefik 访问 dockerized Neo4j webinterface
问题描述
我正在尝试在traefik作为反向代理的帮助下访问 dockerized neo4j -instance 的 Web 界面。
我可以通过导航到 neo4j-instance 的 Web 界面myDomain.demo:7479/browser
。但是我希望能够通过简单地导航到它来访问它myDomain.demo/neo4j/myNeo
,因此在同一台机器上使用多个 neo4j 实例时我不必记住端口号。遗憾的是,我无法以这种方式访问网络界面,而是显示一个空白页面,要求我提供凭据。我想这至少是一个好兆头,因为通常在访问 Web 界面时,我必须将我的 db-credentials 输入到 GUI 掩码中才能连接到我的 neo4j-db。但是,这应该看起来像这样,而不是我看到的简单的浏览器弹出窗口。
很明显,我不能成为第一个尝试访问多个 Neo4j 实例及其在反向代理后面的相应 Web 界面的人,但我不知道该怎么做。这是我的设置命令:
Dockerized Traefik-Proxy
docker run --name proxy -p 80:80 -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock \
traefik \
--api --loglevel=debug --entryPoints="Name:http Address::80" \
--docker --docker.endpoint="unix://var/run/docker.sock"
Dockerized Neo4j-Instance(在没有代理的情况下工作正常)
docker run --name myNeo -d --publish=7479:7474 --publish=7701:7687 \
--label traefik.frontend.rule="Host:myDomain.demo;Path:/neo4j/myNeo" \
--label traefik.backend=myNeo \
--label traefik.port=7474 \
neo4j:latest
(为了简单起见,我在 neo4j-docker 命令中删除了多个卷分配。)
我注意到当手动导航到 时myDomain.demo:7479
,我被重定向到myDomain.demo:7479/browser
. 也许 Traefic 无法处理该重定向,这就是为什么我得到一个没有错误的空白页面的原因?
提前致谢。
解决方案
三件事:
- 该
Path
规则仅是完全匹配。Path:/example
会匹配/example
,但不会/example/bacon
。您可能想PathPrefix
改用。 - 如果您不能运行
myDomain.demo:7479/neo4j/myNeo/browser
,那么您将无法使用子目录进行路由。您需要将应用程序配置为侦听子路径。Neo4j 需要知道它的路径,以便它可以生成链接等。 - 一旦您可以让 neo4j 在子路径上工作,您就可以使用 traefik 路由到自定义域/端口。
推荐阅读
- ios - 如何将 NSValue 转换为 CLLocationCoordinate2D
- calendar - Instagram 浏览器不处理 ICS 链接
- r - 如何使用 R 指定图例的形状以匹配散点图中的组点?
- java - 使用 java 创建 Azure VM
- react-native - 弹出菜单需要 RN 0.55+ 反应本机错误
- javascript - 访问第一个对象和其中的数组
- architecture - 在业务逻辑层使用 System.Net 和 System.Net.Http 中的类是否不正确?
- junit5 - 如何在 Allure 报告中使用重试而不是几个具有相同名称的测试来获取重试选项卡?
- ios - 奖励视频广告未展示?
- tfs - VSTS 上的 TFS:`tf vc unshelve
` 静默失败,不下载更改