在请求与 location 或 server 匹配之前更改请求 URL

我正在使用带有 nginx-ingress 控制器的 k8s 集群。我需要在请求匹配服务器和 location 之前将文本添加到请求 URL。

例如:请求:abc.com/access/endpoint

我有一个 Ingress,它的主机是 abc.com,路径为/access/(*.). 因此,当请求被发送时,请求与 Ingress 匹配并按预期将请求重定向到服务端点。

但我需要将请求更改为 abc.com/access/newtext/endpoint,然后使其对 Ingress 可用。这是否可行?

非常感谢

原文链接 https://stackoverflow.com/questions/71031017

点赞
stackoverflow用户2017590
stackoverflow用户2017590

我还没有尝试过,但 rewrite 注释能帮助你吗?

https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#rewrite

在某些情况下,后端服务中公开的 URL 与 Ingress 规则中指定的路径不同。如果没有重写,任何请求都将返回 404。将注释 nginx.ingress.kubernetes.io/rewrite-target 设置为服务期望的路径。

如果应用程序根路径公开在不同的路径中并需要重定向,请将注释 nginx.ingress.kubernetes.io/app-root 设置为重定向 / 的请求。

2022-02-08 09:06:17