重写规则,重写或替换kubernetes中入口规则的前缀

问题描述 投票:0回答:1

我正在努力在 kubernetes 上的 nginx-ingress 上制定重写/替换规则。 我想将前缀 https:///foo 替换为 https:///services/goo 任何人都可以为此建议入口文件吗?

感谢和问候。

kubernetes-ingress nginx-ingress ingress-nginx
1个回答
0
投票

您可以使用重写规则来替换入口规则中的前缀。 rewrite-target 注解通常在 ingress 中使用,用于在将请求转发到后端服务之前替换前缀或执行其他 URL 转换。

这是一个入口配置示例,它使用 rewrite-target 注释将前缀 https://foo 替换为 https://services/goo

api版本:networking.k8s.io/v1

种类:Ingress

元数据:

name: my-ingress 

annotations: [nginx.ingress.kubernetes.io/rewrite-target:](http://nginx.ingress.kubernetes.io/rewrite-target:) [https://services/goo/$1](https://services/goo/$1) 

规格:

规则:

 - host: [example.com](http://example.com) 

    http: 

       paths: 

        - path: /foo/?(.\*) 

           pathType: Prefix 

           backend: 

                service: 

                    name: my-service 

                     port: 

                          number: 80

在上面的示例中,注释 - nginx.ingress.kubernetes.io/rewrite-target 用于指定替换模式。注释中的 $1 指的是从路径字段中的正则表达式捕获的组。

路径字段定义 /foo/ 路径的前缀匹配。当收到与此路径匹配的请求时,入口控制器会将 URL 重写为 https://services/goo/$1,其中 $1 是 URL 中 /foo/ 前缀之后的部分。

这样,如果您访问 https://example.com/foo/some-path,入口控制器将重写为 https://services/goo/some-path 并将请求转发到后端服务。

© www.soinside.com 2019 - 2024. All rights reserved.