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

时间:2019-07-16 08:12:04

标签: kubernetes-ingress nginx-ingress

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

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

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

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

我部署这些订单的顺序重要吗?由于前端的正则表达式本质上将只是(。*),因此如果在/api/(.*)正则表达式之前进行评估,则所有流量都将发送至前端,这是我所不希望的。

如何避免这种情况?

谢谢, 詹姆斯

1 个答案:

答案 0 :(得分:1)

正则表达式遵循第一个匹配策略。

在将路径放入配置之前,Ingress-nginx会按长度递减的顺序对其进行排序。

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

此外,请不要忘记必须启用带有以下注释的正则表达式

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