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

如何通过Kubernetes Ingress将请求重定向至Nginx的/dev路径?

解决方案

要实现将dev.fancy_domain.com的根路径请求转发到Nginx服务的/dev路径,只需在Ingress配置中添加路径重写注解,并保持原有路径匹配顺序即可,修改后的完整配置如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: fanout-ingress
  annotations:
    nginx.ingress.kubernetes.io/force-ssl-redirect: 'true'
    cert-manager.io/issuer: letsencrypt-issuer
    nginx.ingress.kubernetes.io/rewrite-target: /dev
    nginx.ingress.kubernetes.io/use-regex: "false"
spec:
  ingressClassName: nginx
  rules:
  - host: dev.fancy_domain.com
    http:
      paths:
      - path: /
        pathType: Exact
        backend:
          service:
            name: nginx
            port:
              number: 80
      - path: /
        pathType: Prefix
        backend:
          service:
            name: api
            port:
              number: 8080

关键修改说明

  • 添加重写注解:nginx.ingress.kubernetes.io/rewrite-target: /dev 会把匹配到的根路径请求(/)重写为/dev,再转发到Nginx服务,正好命中你Nginx配置中location /dev的规则,返回对应的静态文件。
  • 禁用正则匹配:nginx.ingress.kubernetes.io/use-regex: "false" 确保仅精确匹配根路径时触发重写,避免正则解析带来的不必要问题。
  • 保持路径顺序:由于Exact类型的路径匹配优先级高于Prefix,根路径请求会优先被Nginx服务处理,其他所有路径请求会自动匹配Prefix: /转发到api服务,完全符合你原有的分流逻辑。

如果你的需求是将dev.fancy_domain.com下所有子路径(比如/xxx)都转发到Nginx的/dev/xxx,可以改用带正则捕获组的配置:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: fanout-ingress
  annotations:
    nginx.ingress.kubernetes.io/force-ssl-redirect: 'true'
    cert-manager.io/issuer: letsencrypt-issuer
    nginx.ingress.kubernetes.io/rewrite-target: /dev/$1
    nginx.ingress.kubernetes.io/use-regex: "true"
spec:
  ingressClassName: nginx
  rules:
  - host: dev.fancy_domain.com
    http:
      paths:
      - path: /(.*)
        pathType: Prefix
        backend:
          service:
            name: nginx
            port:
              number: 80
      - path: /api/(.*)
        pathType: Prefix
        backend:
          service:
            name: api
            port:
              number: 8080

这种配置会把所有非/api开头的请求转发到Nginx的/dev/xxx路径,/api开头的请求则转发到api服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 17:24:55