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

Kubernetes Nginx Ingress动态URL重写问题:/users路径无法转发至后端

问题分析与解决方案

你的Ingress配置无法匹配/users请求的核心原因是:当前的path: /users/(.*)正则表达式要求/users后必须跟随/和任意字符,纯/users请求不满足该匹配规则,因此没有被路由到backend Service,导致Nginx返回404。

解决方案一:单规则覆盖两种请求路径

通过调整正则表达式和重写目标,用一条规则同时匹配/users和/users/{user-id}:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-be
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /users$1$2
spec:
  ingressClassName: nginx
  rules:
    - host: backend
      http:
        paths:
          - path: /users(/|$)(.*)
            pathType: ImplementationSpecific
            backend:
              service:
                name: backend
                port:
                  number: 5000
  • 正则/users(/|$)(.*):
    • (/|$)匹配/users后的/或者结束符(即纯/users请求)
    • (.*)匹配后续的任意字符(如/users/3中的3)
  • rewrite-target: /users$1$2:
    • 当请求为/users时,$1和$2均为空,最终转发到/users
    • 当请求为/users/3时,$1为/,$2为3,最终转发到/users/3
  • pathType: ImplementationSpecific:因使用正则匹配,让Ingress Controller(Nginx)自行处理路径匹配逻辑,避免Prefix类型带来的匹配冲突。

解决方案二:双规则分别匹配两种路径

添加两条独立的路径规则,分别处理精确匹配/users和带参数的/users/{user-id}:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-be
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /users/$1
spec:
  ingressClassName: nginx
  rules:
    - host: backend
      http:
        paths:
          # 精确匹配 /users 请求
          - path: /users
            pathType: Exact
            backend:
              service:
                name: backend
                port:
                  number: 5000
          # 匹配 /users/{user-id} 请求
          - path: /users/(.*)
            pathType: ImplementationSpecific
            backend:
              service:
                name: backend
                port:
                  number: 5000
  • 第一条规则用Exact类型精确匹配/users,直接转发到backend的/users路径
  • 第二条规则保持原有的正则匹配,处理带用户ID的请求

验证修改

应用修改后的Ingress配置:

kubectl apply -f your-ingress-file.yaml

重新测试请求:

curl http://backend/users
# 应返回后端服务的/users接口响应
curl http://backend/users/3
# 保持原有正常响应

内容的提问来源于stack exchange,提问作者Taufik Maulana

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 08:06:50