Google Cloud Engine:使用 HTTPS 负载均衡器时如何在端口 80 上路由流量

Google Cloud Engine: How to route traffic on port 80 when using HTTPS load balancer

我正在为我的网站使用 HTTPS 负载平衡器,如果我访问它,它运行良好:https://www.vietnamspotlight.com

但是,如果我使用 http 访问 URL,即 http://vietnamspotlight.com,那么我总是会收到来自 Google 的错误,提示未找到请求。

然后我尝试通过在 前端配置 会话中添加新的 IP、端口和协议来更新负载均衡器以与 HTTP 一起使用。请参阅下图以供参考(HTTP 和 HTTPS 的 IP 已从图像中删除):

之后,我切换到域名提供商的DNS配置,并尝试添加另一个指向新IP的A记录来处理HTTP协议的请求。这意味着我在同一主机 @ 上使用了两条 A 记录,每条记录都指向不同的值,一条用于 HTTP,一条用于 HTTPS。请参阅下图以供参考(值已更改为假 IP 地址):

还是不行。

您没有正确配置负载平衡器。您必须为 HTTP 和 HTTPS 使用相同的 TCP/IP 地址。

通过在 DNS 中为您的网站配置两个不同的 IP 地址,您实际上是在向 select 的客户端提供两个 IP 地址。根据客户端和 DNS 服务器,您的客户端将以循环方式转到一个 IP 地址或另一个 IP 地址。这当然不是你想要的。

DNS 服务器在做出 DNS 解析决策时不知道 HTTP 和 HTTPS 之间的区别。 DNS 服务器将域名转换为 IP 地址。协议 (HTTP / HTTPS) 不是翻译决定的一部分。

这意味着您需要使用两个前端配置 Google 负载平衡器(HTTP(S) 负载平衡 - 第 7 层)。第一个前端是 HTTP,第二个前端是 HTTPS。两者使用相同的 IP 地址。

重要提示:

一个重要的步骤是在创建负载平衡器之前将静态 IP 地址创建为全局地址。如果您在创建第一个前端的步骤中创建 IP 地址,则在创建第二个前端时将无法 select 相同的 IP 地址。

删除 DNS 服务器中的错误条目。您可能需要等待一段时间,以便 TTL(生存时间)对您的 DNS 条目超时。等待中进行下一步。

返回 Google 云控制台。 Select 您的负载均衡器。删除您的 HTTP 前端。保存负载均衡器。现在返回并配置一个新的 HTTP 前端 select 使用您用于 HTTPS 前端的相同 IP 地址。