在Traefik中是否有与ReverseProxyPass相同的Apache?

时间:2017-05-29 15:34:05

标签: traefik

我已将Traefik设置为在Docker Swarm模式下工作。我使用以下命令将Portainer部署到集群中:

docker service create                            \
                                                 \
   --label "traefik.port=9000"                   \
   --label "traefik.docker.network =traefik-net" \
   --label "traefik.frontend.rule=Host:`hostname -f`;PathPrefixStrip:/portainer" \
   --label="traefik.backend=portainer" \
                                       \
   --network traefik-net               \
   --constraint "node.role == manager" \
   -p 9000:9000                        \
   --mount "type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock" \
   --name portainer \
   portainer/portainer

可以看出,我已经通过使用标签将Traefik配置为将/portainer的请求代理到Portainer服务。但是,Protainer提供的链接来自/,因为它不知道它正在被代理,因此应用程序不起作用,因为Traefik不知道如何路由每个链接。

我正在努力避免因为希望它变得透明而不得不改变服务的部署以与Traefik一起使用。为此,有可能让Traefik重写来自服务的链接,例如Apache的ReverseProxyPass吗?

我知道Traefik现在设置X-Forwarded-Prefix,但我不确定如何使用Portainer之类的东西来开箱即用,或者实际上是从Docker Store安装的其他服务。

1 个答案:

答案 0 :(得分:3)

我的错误,这是有效的。我在请求中省略了尾随/。当我添加它时,一切正常。

现在我打电话给:

http://dummy.localhost/portainer/