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

Azure AKS中Nginx Ingress路径前缀路由异常求助

AKS Nginx Ingress路径前缀路由404问题解决办法

问题核心原因

当你配置path: /web且pathType: Prefix时,Nginx Ingress会将**完整的请求路径(包括/web前缀)**直接转发给后端服务。比如访问qa.mysite.com/web,后端webapp1-svc收到的请求路径是/web,但该服务的根端点是/,因此返回404;访问qa.mysite.com/web/api/health时,后端收到的路径是/web/api/health,若服务没有这个端点同样报错。

解决方案:添加路径重写规则

需要通过Nginx Ingress的注解实现路径前缀剥离,将/web之后的内容转发给后端服务的根路径。修改后的Ingress配置如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-portals
  annotations:
    kubernetes.io/ingress.class: nginx
    cert-manager.io/cluster-issuer: letsencrypt
    # 开启正则匹配
    nginx.ingress.kubernetes.io/use-regex: "true"
    # 将/web前缀替换为空,仅转发后续路径
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  tls:
    - hosts:
      - qa.mysite.com
      secretName: app-web-cert
  rules:
  - host: qa.mysite.com
    http:
      paths:
      - path: /web(/|$)(.*)
        pathType: ImplementationSpecific
        backend:
          service:
            name: webapp1-svc
            port: 
              number: 80
      - path: /(.*)
        pathType: ImplementationSpecific
        backend:
          service:
            name: payment-service
            port: 
              number: 80

关键修改说明

  1. 正则路径匹配:/web(/|$)(.*)会匹配所有以/web开头的路径,将/web之后的内容捕获到$2变量中。
  2. 路径重写:rewrite-target: /$2会把转发给后端的路径替换为$2的内容,比如/web/api/health会被重写为/api/health,/web会被重写为/。
  3. 路径类型调整:使用ImplementationSpecific替代Prefix,因为正则路径匹配需要Ingress控制器自行处理路径解析逻辑。

额外注意事项(针对React静态应用)

如果webapp1-svc是React应用,还需要在项目的package.json中添加"homepage": "/web",确保React内部路由和静态资源加载路径正确,避免前端层面的404问题。

验证步骤

  1. 应用修改后的Ingress配置:
    kubectl apply -f your-ingress.yaml -n dev
    
  2. 查看Nginx Ingress控制器日志确认规则生效:
    kubectl logs -n kube-system <nginx-ingress-controller-pod-name>
    
  3. 测试访问qa.mysite.com/web和qa.mysite.com/web/api/health验证路由是否正常。

内容的提问来源于stack exchange,提问作者Vladimir Petukhov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 07:35:11