答案1
现在可以直接在任何 ALB 规则中执行一些重定向,请参阅相关AWS 公告。
要无条件地将所有查询从 HTTP 重定向到 HTTPS,您必须仅使用默认规则/操作配置 HTTP 侦听器,以使用 HTTPS 协议将具有相同主机、路径和查询的所有请求永久重定向(301)到 HTTPS 端口(通常为:443):
答案2
假设您在 EC2 实例中运行 Microsoft Windows,并使用 IIS 配置两个网站,siteA 和 siteB。将 siteA 设置为绑定在端口 81,将 siteB 设置为绑定在端口 82。
步骤 1:
在 AWS 控制台中,选择“负载平衡”下的“目标组”。创建两个目标组:
1. siteA-target-group,其中包含您的 Web 服务器实例 ID 和端口 81
2. siteB-target-group,其中包含您的 Web 服务器实例 ID 和端口 82
注意:您可以在目标组中添加更多 Web 服务器实例,以实现负载平衡和故障转移。
步骤 2:
在 AWS ALB 中,有两个监听器,一个用于端口 80,一个用于端口 443。
对于 HTTP (80),添加 2 条规则:
1. 如果主机是 siteA.com,则重定向到https://#{host}:443/#{path}?#{query}
2. 如果主机是 siteB.com,则重定向到https://#{host}:443/#{path}?#{query}
对于 HTTPS (443),添加 2 条规则:
1. 如果主机是 siteA.com,则转发到 siteA-target-group
2. 如果主机是 siteB.com,则转发到 siteB-target-group
步骤 3:
在您的 DNS 提供商上,为 siteA.com 设置 CNAME 以指向 ALB 的 DNS 名称。同样,为 siteB.com 设置 CNAME。
完成上述设置后,测试连接到http://siteA.com或者http://siteB.com
i) 流量到达 ALB 端口 80
ii) 主机头与规则“siteA.com”匹配并将流量重定向到端口 443
iii) 流量到达 ALB 端口 443
iv) 主机头与规则“siteA.com”匹配并转发到目标组 siteA-target-group
v) siteA-target-group 指向 Web 服务器上的端口 81 并提供服务。