我正在从 nginx 入口控制器迁移到 GKE 中的网关控制器。在我的 Ingress 资源中,我使用
nginx.ingress.kubernetes.io/rewrite-target
注释进行 URL 重写。在重写中,我使用从规则 http 路径输出的正则表达式捕获组。
在 HttpRoute 资源中,我看到了使用 PathPrefix 执行此操作的方法,但我没有看到在重写中使用 regexMatch“输出”(捕获组)的方法。我在重写中只看到这两个选项:
pathPrefixRewrite
和hostRewrite
。
有没有办法根据正则表达式捕获的组进行重写?
示例: 重写
/before/(.*)/ending
到/after/$1/ending
根据此文档,由于限制和已知问题,GKE 网关不支持正则表达式。不过,我认为您可以使用 Nginx 反向代理来使用您共享的注释通过正则表达式处理这种复杂的重写,然后将其指向 GKE 网关作为后端。