上次更新日期:2021 年 2 月 5 日
如何使用 Application Load Balancer 将一个域重定向到另一个域?
简短描述Application Load Balancer 服务支持域名的重定向以及从 HTTP 重定向到 HTTPS。如果您的域指向 Application Load Balancer,则最佳实践是使用 Application Load Balancer 而不是 Amazon Simple Storage Service (Amazon S3) 配置重定向。
解决方法注意:如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请确保您运行的是最新版本的 AWS CLI。
如果您使用 Application Load Balancer 作为配置的一部分,则可以使用它将一个域重定向到另一个域:
-
打开 Amazon Elastic Compute Cloud (Amazon EC2) 控制台。
在导航窗格中,选择负载均衡下的负载均衡器。
选择您的负载均衡器,然后选择侦听器。
为要使用的负载均衡器侦听器选择查看/编辑规则。
选择添加规则图标 (加号)。
选择插入规则。
选择添加条件。
在条件部分 (IF) 中,选择添加条件。
选择主机标头,然后输入主机名 (例如,example.com)。
如要保存,请选择复选标记图标。 在操作部分 (THEN) 中,选择添加操作。
选择重定向到。
根据使用案例的要求,指定协议和端口。
将原始主机、路径、查询更改为自定义主机、路径、查询。
对于主机,请输入 example2.com。
对于路径和查询,请保留默认值 (除非您的使用案例要求您更改它们)。
将响应设置为 HTTP 301“永久移动”或 HTTP 302“已找到”。
如要保存,请选择复选标记图标。
现在会出现 THEN 部分:
重定向到 https://example2.com:443/#{path}?#{query}
状态代码:HTTP_301 选择保存。
注意:如果两个域指向同一个 Application Load Balancer,请确保:
两个域都有单独的证书,或 使用主题替代名称 (SAN) 证书验证域要确认重定向发挥作用,请执行以下操作:
1.在 AWS CLI 中,使用 curl 函数。
curl
-Iv https://example1.com -L
* Rebuilt URL to: https://example1.com/
. . .
* Connected to example1.com (1.2.3.4) port 443 (#0)
<SSL handshake>
> Host: example1.com. ———> Host name is example1.com
> User-Agent: curl/7.61.1
>
Accept: */*
>
* Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
< HTTP/2 301 ———> ALB does redirection
< server: awselb/2.0
< date: Fri, 06 Mar 2020 09:18:33 GMT
< content-type: text/html
< content-length: 150
< location: https://example2.com:443/. ——> redirected to “example2.com”
<
* Issue another request to this URL: 'https://example2.com:443/‘. ———> Curl initiates another request that is to example2.com
* Trying 34.195.219.169...
* TCP_NODELAY set
<SSL handshake>
> Host: example2.com. ———> Host name has changed to example2.com
> User-Agent: curl/7.61.1
> Accept: */*
>
* Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
<
HTTP/2 200 ——> We got a response
2.在互联网浏览器中,输入 example1.com 并确认它已重定向到 example2.com。