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

Kubernetes Nginx Ingress路径重写配置问题:后端收到请求包含路径前缀

问题排查与解决方案

重写规则效果说明

你使用的nginx.ingress.kubernetes.io/rewrite-target: /$2规则本身完全符合需求:该规则属于Nginx Ingress的内部转发重写逻辑,仅修改集群内部Ingress转发到后端服务的请求路径,不会触发用户侧浏览器跳转,用户地址栏的可见地址会完全保持不变。

现有配置的问题

你的路径匹配规则、重写参数配置均正确,唯一问题是Ingress规则的host配置和实际对外的服务域名不匹配:

  • 你需要承接的请求域名是myapi.develop.mydomain.com
  • 但当前配置的rules.host字段值为myapi.mynamespace.mydomain.com
    域名不一致会导致目标请求无法匹配到该Ingress规则,自然不会触发重写逻辑。

修正后的完整配置

仅需要修改rules.host字段为你实际使用的域名即可,其余配置保持不变(运行时自动生成的uid、managedFields等字段无需手动配置):

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: myapi-ingress
  namespace: mynamespace
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  ingressClassName: nginx
  rules:
    # 修正为实际对外的服务域名
    - host: myapi.develop.mydomain.com
      http:
        paths:
          - path: /data-service(/|$)(.*)
            pathType: Prefix
            backend:
              service:
                name: data-service
                port:
                  number: 3000
          - path: /model-service(/|$)(.*)
            pathType: Prefix
            backend:
              service:
                name: model-service
                port:
                  number: 3000

配置更新后,访问http://myapi.develop.mydomain.com/data-service/request时,后端data-service收到的请求路径会自动变为/request,用户侧地址保持不变。

内容的提问来源于stack exchange,提问作者John Fox

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:45:05