如何使用 GCP 负载均衡器管理 URL 重写?

如何使用 GCP 负载均衡器管理 URL 重写?

我们在 GCP 存储桶上部署了一个单页 Web 应用程序,前面有一个负载均衡器。
所有 URL (例如)example.com/login都应重写为example.com/#/login。如果不重写,默认行为是去获取一些login.html,但我们只有并且需要index.html,应用程序会处理路由。

如何配置负载均衡器来实现这样的任务?

答案1

Google LB 具有以下功能:

  • URL 重定向
  • URL 重写

基于URL 前缀自 2020 年夏季以来:https://cloud.google.com/load-balancing/docs/https/setting-up-traffic-management

官博公告:https://cloud.google.com/blog/products/networking/how-to-use-new-traffic-control-features-in-cloud-load-balancing

似乎 LB 是原始的重写引擎(只有前缀,没有正则表达式),因此您无法使用 LB 运行 SPA 应用,请参阅https://stackoverflow.com/questions/72648022/deploy-spa-application-on-google-cloud-storage-using-load-balancer-and-cdn

2023 年更新实际上,可以使用 GCP 提供的 Bucket 默认 404 处理程序来创建 SPA 应用index.html。请参阅上面的链接。

更新2 2023Google LB 具有匹配通配符*(包括递归**)的能力:https://cloud.google.com/load-balancing/docs/url-map-concepts#wildcards-regx-dynamic-route

答案2

目前,GCP 上无法在 LB 级别进行重定向。您可以参考有些用户对如何在应用内重定向有建议。如果这没有帮助,您可以提交功能要求使用负载平衡组件Google 问题跟踪工具

相关内容