You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx Ingress根路径404问题:需将正则转换为RE2格式

Kubernetes Ingress正则适配RE2修复方案

问题根源

你的Ingress配置存在两个关键问题:

  • 正则表达式写法不符合RE2语法(NGINX Ingress使用的正则引擎)
  • 注释拼写错误:nginx.ingress.kuberentes.io/use-regex里的kuberentes应为kubernetes,这会导致正则开关未正确启用

修正后的Ingress配置

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-srv
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/use-regex: 'true'  # 修正拼写错误
spec:
  rules:
    - host: posts.com
      http:
        paths:
          - path: /posts/create
            pathType: Prefix
            backend:
              service:
                name: posts-clusterip-srv
                port:
                  number: 4000
          - path: /posts
            pathType: Prefix
            backend:
              service:
                name: query-srv
                port:
                  number: 4002
          - path: /posts/.*/comments  # 适配RE2的写法,匹配/posts/xxx/comments格式
            pathType: Prefix
            backend:
              service:
                name: comments-srv
                port:
                  number: 4001
          - path: /.*  # 匹配根路径及所有未被上面规则覆盖的路径
            pathType: Prefix
            backend:
              service:
                name: client-srv
                port:
                  number: 3000

关键修改说明

  1. 根路径规则:把/?(.*)改为/.*
    RE2中,/.*可以直接匹配根路径(空路径)以及所有以/开头的子路径,完全覆盖你原本想要的匹配逻辑。

  2. comments路径规则:把/posts/?(.*)/comments改为/posts/.*/comments
    原写法里的/?(.*)不符合RE2语法,.*直接匹配任意长度的字符(包括空),足以覆盖posts/xxx/comments这类路径。如果需要匹配非空内容,可以改用/posts/(.+)/comments。

  3. 修正注释拼写:把kuberentes改为kubernetes,确保正则功能被正确启用,这是很多人容易忽略的细节。

内容的提问来源于stack exchange,提问作者thomas paulson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 22:42:20