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

如何在Ingress YAML中为两个路径配置rewrite-target

解决Ingress rewrite-target配置问题

你的问题出在rewrite-target未结合捕获组处理/mf2路径的请求转发,导致mf2的静态资源请求被错误路由到mf1服务。以下是正确的配置方案:

修正后的Ingress配置

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: http-ingress
  annotations:
    kubernetes.io/ingress.class: public
    nginx.ingress.kubernetes.io/rewrite-target: /$2
    nginx.ingress.kubernetes.io/use-regex: "true"
spec:
  rules:
    - http:
        paths:
          - path: /()(.*)
            pathType: Prefix
            backend:
              service:
                name: mf1
                port:
                  number: 80
          - path: /mf2(/|$)(.*)
            pathType: Prefix
            backend:
              service:
                name: mf2
                port:
                  number: 80

配置说明

  • 开启正则匹配:添加nginx.ingress.kubernetes.io/use-regex: "true"注解,确保路径的正则捕获组生效。
  • mf1路径配置:/()(.*)用两个捕获组,$2会匹配根路径下所有子路径,重写后请求会正确转发到mf1服务的对应路径。
  • mf2路径配置:/mf2(/|$)(.*)中,第一个捕获组匹配/mf2后的斜杠或路径结尾,第二个捕获组匹配后续子路径;rewrite-target: /$2会将请求重写为mf2服务根路径下的对应子路径(例如请求/mf2/css/style.css会被转发到mf2服务的/css/style.css)。

内容的提问来源于stack exchange,提问作者Furkan Öztürk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 02:40:32