允许 http 和 https 指向我在 GCP 存储桶上托管的静态网站

Posted

技术标签:

【中文标题】允许 http 和 https 指向我在 GCP 存储桶上托管的静态网站【英文标题】:Allow http and https to point to my static website hosted on GCP bucket 【发布时间】:2020-02-12 10:21:43 【问题描述】:

目标:

我想让https://example.com、http://example.com 和 www.example.com 指向我在 Google Cloud Storage 存储桶上托管的静态网站。

我的设置:

我在 Google Cloud Storage 存储桶上托管一个静态网站。

名为 www.example.com 的存储桶 我有负载均衡器,前端是 https,后端是存储桶。 在 Cloud DNS 中,我有指向存储桶的 CNAME 记录。 我有一条记录,将我的域“example.com”指向负载平衡器前端的 https IP 地址。

通过上述设置,https://example.com 和 www.example.com 工作正常。

我也想允许 http。因此,我在负载均衡器“http”中添加了另一个前端。然后,我将该前端的 IP 地址添加到现有的 A 记录中。所以,现在我的 A 记录有 http 和 https 的 IP 地址。

之后,http://example.com 开始工作。但是,https://example.com 停止工作。我错过了什么吗?

【问题讨论】:

您需要一个同时响应 https 和 http 的 IP,而不是单独的 IP。 谢谢@kicken,它成功了 【参考方案1】:
    删除 HTTP 前端并重新创建它。 为 HTTP 前端使用与 HTTPS 前端相同的 IP 地址。 从您的 DNS 服务器中删除额外的 IP 地址。

然后您将不得不等待 DNS 更新,这可能需要数小时到一天的时间。您当前(旧)条目将需要过期 (TTL)。

要验证所有设置是否正确,请使用MxToolbox 等 Internet 服务来验证您的 DNS 记录。

为什么您当前的设置不起作用?您为同一个网站定义了两个 IP 地址。大多数 DNS 服务器将对这些地址进行轮询,这意味着有时您的网站将解析为一个 IP 地址(负载平衡器前端),然后解析为另一个 IP 地址(另一个前端)。但是,您的前端是按协议 (HTTP/HTTPS) 配置的,因此您有 50% 的机会针对错误的协议访问错误的前端。

【讨论】:

谢谢,它成功了。也感谢您花时间解释

以上是关于允许 http 和 https 指向我在 GCP 存储桶上托管的静态网站的主要内容,如果未能解决你的问题,请参考以下文章

从 CLI 允许 GCP 实例(端口:8080)的防火墙规则

terraform GCP https) 负载均衡器

GCP 健康检查不适用于 VM(Centos 7)

使用GCP API密钥限制对特定GCP App Engine服务的访问?

如何按小时监控Google云端平台(GCP)费用?

如何通过 http 触发器从 AWS SNS 触发 GCP 云功能(私有)