我正在尝试通过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需要知道其路径,以便它可以生成链接等。关于docker - 无法通过dockerized Traefik访问dockerized Neo4j Web界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51377073/