docker - 无法通过dockerized Traefik访问dockerized Neo4j Web界面

标签 docker neo4j reverse-proxy traefik

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

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

显然,我不能成为第一个尝试访问反向代理后面的多个neo4j实例及其对应的Web界面的人,但是我无法全神贯注于如何做到这一点。这是我的设置命令:

Dockerized Traefik代理

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实例(无需代理即可正常运行)
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路由到自定义域/端口。
  • 关于docker - 无法通过dockerized Traefik访问dockerized Neo4j Web界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51377073/

    相关文章:

    Docker:在 CMD 的 shell 脚本中运行 init 和 systemctl 时出错

    Docker 在主机浏览器中打开一个 url

    docker - 无法理解此 docker 文件的网络部分(zabbix)

    json - Dart + JSON + Neo4j:某处有教程吗?

    python - load2neo 不工作 - 如何正确使用?

    nginx - 通过 nginx 反向代理在 docker 容器内的 phpMyAdmin

    nginx - 如何使用 dokku 将子域代理到其他服务器?

    docker - 验证 docker-compose yml 文件

    neo4j - Cypher:在可选/可为空参数上匹配节点

    Apache - 反向代理和 HTTP 302 状态消息