使用 GCP 存储的静态站点的自定义 301 重定向

Custom 301 redirects for static site using GCP Storage

我正在考虑是将我的静态网站托管在 AWS S3 存储桶上还是使用 Google 云平台存储,而且,由于我已经在使用 GCP,而且它通常更便宜,我真的很想利用那个选项。

我的问题是我经常需要为我的网站创建自定义 301 重定向,例如:

https://example.com/page -> https://anotherexample.com/another-page

S3 似乎 handle this well,但我没有找到任何关于来自 GCP 的自定义重定向的文档。

GCP 存储桶是否可行?

简答:GCP 似乎不支持这样的功能。

但是在 GCP 中很难做到这一点:

您可以使用 Nginx 设置微型虚拟机的实例组,配置为为您进行重定向。

然后您需要设置一个负载平衡器来处理所有请求。 它支持转发规则,因此您可以将其配置为将 https://example.com/page 请求发送到 nginx VM,并将所有其他请求发送到存储桶。

正如@Scalar 所指出的,目前 GCP 不支持在 Google Cloud Storage 中托管静态网站的重定向,因此只需添加一些有关将内容作为后端服务提供的提案的更详细信息,让我与您分享一些可能对您有所帮助的文档指南。

目前,Cloud Storage 存储桶可以用作后端服务(实际上是后端存储桶),以便您针对基于内容的负载平衡系统发出的静态内容请求由该存储桶提供服务(同时其余请求由您的实例处理;尽管您可以跳过该部分,因为您只需要配置中的云存储服务)。

要为您的负载均衡器设置后端存储桶,您可以按照以下 documentation page. It assumes that you have previously completed the creation of a content-based load balancer, so you can start from that example. Then, you can set up redirections so that calls to https://example.com/page are redirected to https://anotherexample.com/another-page, and they are finally processed by your load balancing service, which will direct them to your bucket. Redirects can be performed at the application level by means of the web server of your choice, but just to give you a couple of examples, you can do that using NGINX's return or rewrite directives, as explained in their official documentation, or also Apache Server's Redirect or Rewrite rules, as detailed in their documentation to 中详述的步骤操作。

我在 GCS 中管理一个 8500 页的静态网站。我使用 Cloudflare.com 管理了这个。它有一个名为“Workers”的预处理器,它使用 javascript.

您可以在 301 重定向的代码中包含 Key-Value 对或数组。

虽然 Google Cloud Storage 仍然不支持重定向,但 GCP HTTP load balancer now supports it.

您必须在 Google 云存储静态站点前使用云负载平衡器才能设置重定向。

无论如何您可能都想这样做,因为它必须提供 https 内容(与 http 相对)。

您可以根据需要添加任意数量的重定向,但要当心陷阱 - 他们会收取费用。截至今天,定价为:

对于前 5 个转发规则:$0.025/小时 每增加一条转发规则:$0.01/小时 (https://cloud.google.com/vpc/network-pricing#lb)

加起来。例如,在前 5 条规则之后,您的第 6 条规则每小时仅花费一分钱。但是每小时 1 美分 = 每年 87.60 美元。所以想象一下你想要 100 个重定向......哦,天哪。