如何使用 Application Load Balancer 将一个域重定向到另一个域?

上次更新日期: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