我正在尝试使用docker标签创建一条前端规则,该规则既可以将一对基于主机的路由,也可以将某些基于路径的路由从一个域定向到一个后端,但是我很难找到正确的魔术来解决复杂的问题规则。frontend.rule="Host:HostA.domain,HostB.domain,HostC.domain,Host:svc.domain;PathPrefix=/api/users, Host:svc.domain;PathPrefix=/api/other"
这似乎是or和And逻辑的正确组合,但我似乎错了。
最佳答案
,
是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:/_"
# ...
文档链接:
关于docker - traefik docker标签中基于主机和路径的路由规则的混合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52338446/