Nginx ingress controller rewrite-target 官网例子详解
2023-12-14 05:43:24
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$2
name: rewrite
namespace: default
spec:
ingressClassName: nginx
rules:
- host: rewrite.bar.com
http:
paths:
- path: /something(/|$)(.*)
pathType: ImplementationSpecific
backend:
service:
name: http-svc
port:
number: 80
这会导致:
rewrite.bar.com/something
被重写为 rewrite.bar.com/
rewrite.bar.com/something/
被重写为 rewrite.bar.com/
rewrite.bar.com/something/new
被重写为 rewrite.bar.com/new
首先,我们需要一些有关于正则表达式的知识:
正则表达式中的括号代表分组,匹配第一个括号中的内容的部分就是第一组用$1表示,匹配第二个括号中的内容的部分就是第二组用$2表示。
第一个括号中的内容是
匹配正斜线 或 一句结尾
第二个括号中的内容是
点匹配任意字符,星号表示匹配0或者多个它的前面的字符,合起来的意思就是第一部分后面剩下的所有字符都被第二部分捕捉
现在再来看我们的例子
例子一 第一部分匹配了 美元符号 第二部分没有被匹配,为空
因此 /something被重写为 /$2 也就是 /空 也就是 /
例子二 第一部分匹配了 /
同理 $2为空, /something被重写为 /
例子三 第一部分匹配了 / 第二部分匹配了 new
$2 = new
/something/new 被重写为 /new
文章来源:https://blog.csdn.net/huaiyingdetective/article/details/134985786
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!