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