traefik docker 标签中基于主机和路径的路由规则的混合

Mixture of host and path based routing rules in traefik docker labels

我正在尝试使用 docker 标签创建一个前端规则,该规则将一对基于主机的路由 一些基于路径的路由从一个域定向到一个后端但我无法获得正确的魔法来处理复杂的规则。

frontend.rule="Host:HostA.domain,HostB.domain,HostC.domain,Host:svc.domain;PathPrefix=/api/users, Host:svc.domain;PathPrefix=/api/other"

这似乎是 orAnd 逻辑的正确组合,但我似乎错了。

  • , 是 OR 运算符(仅在匹配器中有效,例如:Host:foo.com,bar.com
  • ; 是 AND 运算符(仅适用于匹配器,例如:Host:foo.com;Path:/bar

Host:api.service;PathPrefixStrip:/foo

要在匹配器之间进行 OR,您需要使用段标签:

   # ...
   labels:
     - "traefik.enable=true"
     - "traefik.port=80"
     - "traefik.foo.frontend.rule=Host:api.mydomain.com"
     - "traefik.bar.frontend.rule=Host:www.mydomain.com,m.mydomain.com;PathPrefixStrp:/_"
   # ...

文档链接: