【问题标题】:Unable to access dockerized Neo4j webinterface through dockerized Traefik无法通过 dockerized Traefik 访问 dockerized Neo4j webinterface
【发布时间】:2018-07-17 08:53:46
【问题描述】:

我正在尝试在 traefik 作为反向代理的帮助下访问 dockerized neo4j-instance 的 Web 界面。

我可以通过导航到myDomain.demo:7479/browser 来访问neo4j-instance 的网络界面。但是,我希望能够通过简单地导航到 myDomain.demo/neo4j/myNeo 来访问它,因此在同一台机器上使用多个 neo4j 实例时我不必记住端口号。 遗憾的是,我无法通过这种方式访问​​网络界面,而是显示了一个空白页面,要求我提供凭据。我想这至少是一个好兆头,因为通常在访问 Web 界面时,我必须将我的 db-credentials 输入到 GUI 掩码中才能连接到我的 neo4j-db。然而,这应该看起来像 this 而不是我看到的简单浏览器弹出窗口。

很清楚,我不能成为第一个尝试访问多个 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 无法处理该重定向,这就是为什么我得到一个没有错误的空白页面?

提前致谢。

【问题讨论】:

    标签: docker neo4j reverse-proxy traefik


    【解决方案1】:

    三件事:

    1. Path 规则仅是完全匹配。 Path:/example 将匹配 /example,但不匹配 /example/bacon。您可能想改用 PathPrefix
    2. 如果您无法运行myDomain.demo:7479/neo4j/myNeo/browser,那么您将无法使用子目录进行路由。您需要将应用程序配置为侦听子路径。 Neo4j 需要知道它的路径,以便生成链接等。
    3. 一旦您可以让 neo4j 在子路径上运行,您就可以使用 traefik 路由到自定义域/端口。

    【讨论】:

    • 感谢您的帮助。但是我不知道如何修改 neo4j 来监听子路径,所以我决定放弃 Traefik 并改用 nginx。
    猜你喜欢
    • 1970-01-01
    • 2023-03-11
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    • 2019-11-05
    相关资源
    最近更新 更多