具有多个路径的多个入口 - 路径正则表达式的优先级如何?



当使用同一主机在 Kubernetes 下运行多个入口控制器时,如何评估正则表达式?顺序重要吗?

基本上,我有一个用于 API 的入口和另一个用于前端的入口。

位于 example.com/api/-> api/(.*) 上的 API

前端位于 example.com -> (.*)

我部署这些的顺序重要吗?由于前端的正则表达式基本上只是 (.*),如果在/api/(.*) 正则表达式之前对其进行评估,则所有流量都将发送到前端,这是我不想要的。

我怎样才能避免这种情况?

谢谢 詹姆斯

正则表达式遵循首次匹配策略。

Ingress-nginx在将路径放入配置之前按长度降序排序。

因此,在您的情况下,它将首先与api/(.*)匹配

另外,不要忘记您必须使用以下注释启用正则表达式

nginx.ingress.kubernetes.io/use-regex: "true"

最新更新