AWS 负载平衡和 Web 应用程序重定向到 SSL

AWS 负载平衡和 Web 应用程序重定向到 SSL

我们有一个 [旧版] Web 应用程序,它将非 SSL 请求(端口 80)重定向到 SSL(端口 443)。Web 服务器是 IIS(如果这很重要)。

现在我希望在这个应用程序前面放置一个负载均衡器。这将是未来项目阶段扩展的第一步。

然而,重定向到 SSL 引起了一些我无法理解的问题。

我让 AWS 网络负载均衡器 (NLB) 同时监听 80 和 443。显然它只能通过一个端口发送到目标组(我的 Web 服务器)。

  • 如果我将其发送到端口 80,那么我们将进入重定向循环,因为 Web 服务器假定每个请求都是非 SSL 的。
  • 如果我将其发送到端口 443,那么我们就不会重定向,因为 Web 服务器再次假定所有请求都是安全的

我之所以选择 NLB,是因为它允许我使用现有 Web 服务器的弹性 IP,从而使切换更加无缝(而且,我听说我们的一些 API 客户端已经将该 IP 地址列入允许列表,因此更改很困难)。我认为逻辑排除了使用应用程序负载均衡器(不能使用弹性 IP)?但是 NLB 是第 4 层,所以我不能玩任何与标头有关的游戏。

我不禁想到这个“重定向到 SSL”问题已经被比我更聪明的人解决了......那么你是怎么做到的?

答案1

最初,当我创建 NLB 时,有流量通过端口 80 传输到我的 Web 服务器。

我创建了第二个目标组,针对同一个 Web 服务器,但在端口 443 上。然后,我可以编辑现有 NLB 的 443 侦听器以转发到该新目标组。

创建第二个目标组的关键是将协议指定为 TLS。如果您指定 HTTPS,NLB 侦听器将不允许您使用它。

相关内容