通过谷歌云存储和负载均衡器服务反应应用程序,将任何网址映射到索引?

Posted

技术标签:

【中文标题】通过谷歌云存储和负载均衡器服务反应应用程序,将任何网址映射到索引?【英文标题】:Serving react app via Google Cloud Storage and loadbalancer, mapping any urls to index? 【发布时间】:2021-09-20 11:49:35 【问题描述】:

我正在使用 Google Cloud Storage 和 Loadbalancer 设置 React 应用程序前端。在构建过程中,index.htmljavascript 文件被上传到云存储中。负载均衡器指向后端存储桶。如果我转到 http://(loadbalancerip)/index.html

,我现在可以访问 react 应用程序

我想对所有路由做出反应,并且我还希望我们的用户通过任意路径(例如 http://(loadbalancerip)/user/details)访问站点。有没有办法使用 GCP 负载均衡器来实现这一点?基本上我希望它始终提供“index.html”,无论用户访问的路径如何。

【问题讨论】:

【参考方案1】:

我向 GCP 支持确认,很遗憾它不受支持。这是一个开放的功能请求https://issuetracker.google.com/issues/194125076

【讨论】:

【参考方案2】:

您可以通过在存储桶上配置网站设置来实现此目的。配置 404 页面以提供 index.html。当用户点击任何随机路线时,将为其提供 index.html。我能看到的唯一缺点是您确实在控制台中收到 404 错误,但这似乎根本不影响操作。

我的负载均衡器只配置了默认规则,为存储桶后端提供所有流量(没有额外的 url 映射规则)。

【讨论】:

【参考方案3】:

假设您使用的是 HTTP(S) 外部负载均衡器,您要查找的是 URL rewrite。

【讨论】:

此链接显示“重要提示:重写按原样添加到路径。不支持完整路径重写。HTTP(S) 负载平衡仅实现路径前缀重写”。你能提供重写配置的例子,让我把所有东西都重写为 index.html 吗?

以上是关于通过谷歌云存储和负载均衡器服务反应应用程序,将任何网址映射到索引?的主要内容,如果未能解决你的问题,请参考以下文章

谷歌云负载均衡器 + GKE 入口

无需停机即可配置谷歌云负载均衡器和托管 SSL

谷歌云负载均衡器是单点故障吗?我们可以有一个备用副本吗?

故障周第二弹:谷歌云平台全局负载均衡服务发生中断

谷歌云负载均衡器是不是合规

在现有的谷歌云静态存储桶中反应“下一个开始”