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