- 文档首页
容器服务
容器服务 VKE
用户指南
网络
路由(Ingress)
Nginx Ingress
Nginx Ingress 配置 URL 重写规则
Nginx Ingress
Nginx Ingress 配置 URL 重写规则
Nginx Ingress 配置 URL 重写规则
Nginx Ingress 支持 URL 重写功能。本文为您介绍如何配置 Nginx Ingress 的 URL 重写功能。
背景说明
在某些应用场景中,后端服务提供的 URL 与 Nginx Ingress 规则中配置的路径不同。默认情况下,Nginx Ingress 将访问路径直接转发到后端服务中的相同路径,如果不配置 URL 重写规则,由于访问路径和服务路径不同,访问将返回404。此时,需要使用 URL 重写规则,改写服务访问的 URL,使其能够访问到后端服务的真实路径。
前提条件
- 已安装 ingress-nginx 组件。详情请参见 安装组件。
操作步骤
Nginx Ingress 支持通过 Annotation 配置 URL 重写规则,示例和说明如下:
Annotation 说明如下表所示。
在nginx.ingress.kubernetes.io/rewrite-target注解中,您可以使用正则表达式定义捕获组,例如本例中,$2表示将访问路径中,第二个括号(.*)中匹配到的所有字符填写到nginx.ingress.kubernetes.io/rewrite-target注解中。例如:
- 请求example.com/demo会重写为example.com/
- 请求example.com/demo/会重写为example.com/
- 请求example.com/demo/test会重写为example.com/test
结果验证
查看配置
执行以下命令,查看 ingress 配置。
预期返回结果如下,表示 Ingress 创建成功。其中180.xxx.xxx.xxx为 Nginx Ingress 对应 CLB 的公网或私网 IP 地址。
访问服务
由于后端服务默认的服务路径为/,而 Ingress 中配置的路径为/demo。当未配置 URL 重写规则时,由于路径不一致,直接通过 Ingress 访问服务时,返回404。
预期返回结果如下:
当配置了 URL 重写规则后,使用以下命令访问服务。
预期输出如下,能够正确地访问到后端服务。
最近更新时间:2026.04.07 14:29:43