gpt4 book ai didi

consul - Traefik Consul 集成中的多个前端规则

转载 作者:行者123 更新时间:2023-12-03 01:24:10 27 4
gpt4 key购买 nike

我正在使用 Traefik 在 Consul 中注册的不同服务之间进行负载平衡。

我正在使用consul-catalog配置并通过在 consul 中定义服务时添加标签来覆盖其中一项服务的前端路由规则:

tags=[“traefik.frontend.rule=PathPrefixStrip:/api,Host:api.service.consul”]

我期望 /apiapi.service.consul 都能解析到我的服务,但只有 /api 成功,然而 api.service.consul 返回 404 错误。

换句话说,只考虑第一条规则。如果我切换标签:

tags=[“traefik.frontend.rule=Host:api.service.consul,PathPrefixStrip:/api”]

然后 api.servie.consul 解析并 /api 返回 404 错误。

我相信文档表明支持此配置。有其他人成功通过 consul 标签定义多个规则吗?

最佳答案

编辑:从 v1.7 开始,对于 consul-catalog,您可以使用:multiple-frontends-for-a-single-service

tags=[
"traefik.frontends.foo.rule=Host:api.service.consul",
"traefik.frontends.bar.rule=PathPrefixStrip:/api",
]
<小时/>

答案可见https://github.com/containous/traefik/issues/2417 :

  • , 是 OR 运算符(仅在匹配器内有效,例如:Host:foo.com,bar.com)
  • ; 是 AND 运算符(仅在匹配器之间起作用,例如:Host:foo.com;Path:/bar)

因此,对于您的示例,请使用:

tags=["traefik.frontend.rule=Host:api.service.consul;PathPrefixStrip:/api"]

文档链接:

关于consul - Traefik Consul 集成中的多个前端规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44963952/

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