gpt4 book ai didi

traefik - 为 Traefik 定义主机和路径前端规则

转载 作者:行者123 更新时间:2023-12-04 03:25:41 28 4
gpt4 key购买 nike

我正在尝试使用 Traefik 在我的 Docker Swarm 模式集群中部署代理多个应用程序。

我已经得到它以便它代理一个命名的主机,但我希望它代理一个命名的主机和路径,但我无法计算出我需要使用的标签。

这是docker service我正在使用的命令:

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

如果主机是 dummy.localhost然后我可以在 http://dummy.localhost 上点击 portainer 应用程序.但是我想修改它以便我必须使用 http://dummy.localhost/portainer .

我已经看到在为 Traefik 使用 toml 文件时有一些方法可以做到这一点,但是我在部署的 docker 服务上使用了监视模式和标签。

如何在我的标签中组合多个前端规则,以便可以在主机名和路径上代理此(和任何其他)应用程序?

最佳答案

Traefik v1

如果您希望应用多个规则以使路由决策生效,请用分号分隔它们。例如:

Host: <your host rule>; PathPrefixStrip: /portainer

上面的意思是:如果主机和路径前缀匹配,Traefik 会将请求路由到关联的后端(并在转发之前去除指定的路径前缀)。这甚至在标签内定义时也有效。

the frontend documentation详情。

更新:Traefik v2
Host(`domain.com`) && Path(`/path`)

the docs

关于traefik - 为 Traefik 定义主机和路径前端规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44232354/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com