当使用同一主机在 Kubernetes 下运行多个入口控制器时,如何评估正则表达式?顺序重要吗?
基本上,我有一个用于 API 的入口和另一个用于前端的入口。
位于 example.com/api/-> api/(.*) 上的 API
前端位于 example.com -> (.*)
我部署这些的顺序重要吗?由于前端的正则表达式基本上只是 (.*),如果在/api/(.*) 正则表达式之前对其进行评估,则所有流量都将发送到前端,这是我不想要的。
我怎样才能避免这种情况?
谢谢 詹姆斯
正则表达式遵循首次匹配策略。
Ingress-nginx在将路径放入配置之前按长度降序排序。
因此,在您的情况下,它将首先与api/(.*)
匹配
另外,不要忘记您必须使用以下注释启用正则表达式
nginx.ingress.kubernetes.io/use-regex: "true"