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

如何在Kubernetes中为单个主机重写特定Assets路径

解决Nginx Ingress路径重写问题

你的需求是仅将test.example.com/assets/*重写为/public/assets/*,其他路径保持不变,当前配置的问题主要出在全局重写注解滥用和正则分组不匹配上,以下是修正后的配置:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/proxy-body-size: 100m
    nginx.ingress.kubernetes.io/use-regex: "true"
    # 移除全局rewrite-target,避免影响所有路径
spec:
  rules:
  - host: www.example.com
    http:
      paths:
      - path: /
        pathType: ImplementationSpecific
        backend:
          service:
            name: example
            port:
              name: http
      - path: /.*
        pathType: ImplementationSpecific
        backend:
          service:
            name: example
            port:
              name: http
  - host: test.example.com
    http:
      paths:
      # 优先匹配/assets路径,单独设置重写规则
      - path: /assets/(.*)
        pathType: ImplementationSpecific
        backend:
          service:
            name: example-test
            port:
              name: http
        # 仅对该路径应用重写,将/assets/xxx转为/public/assets/xxx
        annotations:
          nginx.ingress.kubernetes.io/rewrite-target: /public/assets/$1
      # 其他路径不做重写,直接转发
      - path: /
        pathType: ImplementationSpecific
        backend:
          service:
            name: example-test
            port:
              name: http
      - path: /.*
        pathType: ImplementationSpecific
        backend:
          service:
            name: example-test
            port:
              name: http

关键修正点说明:

  1. 移除全局rewrite-target注解:原配置的全局重写会导致所有域名的请求都被修改,完全不符合仅针对特定路径重写的需求。
  2. 给/assets路径单独添加重写注解:通过在paths层级单独配置rewrite-target,确保重写规则仅作用于/assets/*路径,不影响其他请求。
  3. 修正正则分组逻辑:路径/assets/(.*)将/assets/后的内容捕获为$1,重写时替换为/public/assets/$1,保证路径映射准确。
  4. 调整规则匹配顺序:将/assets的规则放在最前面,因为Nginx Ingress会按从上到下的顺序匹配路径,优先处理特定规则能避免被通用规则提前拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:33:16