Traefik 中是否有等效于 Apache 的 ReverseProxyPass?
Is there an equivalent to ReverseProxyPass for Apache in 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 服务的 links 来自 /
,因为它不知道它正在被代理,所以应用程序无法工作,因为 Traefik 不知道如何路由每个 link .
我试图避免更改服务部署以使用 Traefik,因为我希望它是透明的。为此,是否有可能让 Traefik 从服务中重写 links,就像 Apache 的 ReverseProxyPass
一样?
我知道 Traefik 现在设置 X-Forwarded-Prefix
但我不确定如何让 Portainer 之类的东西开箱即用,或者实际上是从 Docker 商店安装的其他服务例如。
我的错误,这是有效的。我从请求中省略了尾随 /
。当我添加这个时,一切正常。
所以现在我打电话给:
我已将 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 服务的 links 来自 /
,因为它不知道它正在被代理,所以应用程序无法工作,因为 Traefik 不知道如何路由每个 link .
我试图避免更改服务部署以使用 Traefik,因为我希望它是透明的。为此,是否有可能让 Traefik 从服务中重写 links,就像 Apache 的 ReverseProxyPass
一样?
我知道 Traefik 现在设置 X-Forwarded-Prefix
但我不确定如何让 Portainer 之类的东西开箱即用,或者实际上是从 Docker 商店安装的其他服务例如。
我的错误,这是有效的。我从请求中省略了尾随 /
。当我添加这个时,一切正常。
所以现在我打电话给: