4

我已将 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 像ReverseProxyPassApache 那样重写来自服务的链接?

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

4

1 回答 1

4

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

所以现在我打电话:

http://dummy.localhost/portainer/

于 2017-05-29T18:30:01.757 回答