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

如何通过K8s Ingress将域名转发至带指定URI的后端服务?

实现域名根路径转发到后端指定URI的方案

Kubernetes原生Ingress资源本身不支持直接在Service级别配置路径重写,你需要借助所用Ingress Controller提供的注解来实现。以最常用的Nginx Ingress Controller为例,可通过nginx.ingress.kubernetes.io/rewrite-target注解完成类似Nginx中proxy_pass的URI重写效果。

正确的Ingress YAML配置

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: foo-example-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /foo/bar$1
spec:
  rules:
  - host: foo.example
    http:
      paths:
      - path: /(.*)
        pathType: Prefix
        backend:
          service:
            name: serviceA
            port:
              number: 8999

配置说明

  • nginx.ingress.kubernetes.io/rewrite-target: /foo/bar$1:该注解会将请求的URI重写为/foo/bar加上路径捕获部分。当访问foo.example/时,请求会被转发到serviceA:8999/foo/bar;若访问foo.example/test,则转发到serviceA:8999/foo/bar/test,完全匹配你需要的Nginx配置逻辑。
  • path: /(.*):用正则表达式捕获根路径下的所有请求,确保所有发往foo.example的请求都被该规则匹配。

注意事项

  • 需确保集群已正确部署并配置Nginx Ingress Controller,否则上述注解不会生效。
  • 若使用其他类型的Ingress Controller(如Traefik、ALB等),需参考对应控制器的文档调整重写配置,不同控制器的注解规则存在差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 19:20:30