Kubernetes Nginx-Ingress前缀替换规则配置求助
Nginx Ingress 前缀重写配置示例
要实现将前缀 /foo 替换为 /services/goo 的重写规则,你可以利用 Nginx Ingress 的 rewrite-target 注解配合正则匹配完成,以下是完整的 Ingress 配置文件示例:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: foo-to-goo-rewrite annotations: nginx.ingress.kubernetes.io/use-regex: "true" nginx.ingress.kubernetes.io/rewrite-target: /services/goo/$2 spec: ingressClassName: nginx # 替换为你的 Nginx Ingress Controller 类名 rules: - http: paths: - path: /foo(/|$)(.*) pathType: Prefix backend: service: name: your-target-service # 替换为实际后端服务名称 port: number: 80 # 替换为服务对应端口号
配置说明
nginx.ingress.kubernetes.io/use-regex: "true":开启路径正则匹配,保证重写规则正常生效。path: /foo(/|$)(.*):通过正则分组捕获路径内容,$2会匹配/foo之后的所有字符(包括空值)。rewrite-target: /services/goo/$2:将原路径重写为目标前缀加捕获到的后续内容,示例效果:- 访问
https://your-domain/foo→ 重写为https://your-domain/services/goo - 访问
https://your-domain/foo/bar/baz→ 重写为https://your-domain/services/goo/bar/baz
- 访问
请根据实际环境替换配置中的服务名称、端口号和 Ingress 类名。
内容的提问来源于stack exchange,提问作者Balaganesh.V
相关产品推荐
相关产品推荐

