如何使用应用程序负载均衡器将一个域重定向到另一个域?

2 分钟阅读
0

我想使用应用程序负载均衡器将一个域重定向到另一个域。

简短描述

应用程序负载均衡器服务支持域名重定向以及从 HTTP 重定向到 HTTPS。如果您的域指向应用程序负载均衡器,请使用应用程序负载均衡器来配置该域。

**注意:**最佳做法是使用应用程序负载均衡器来配置域,而不是使用 Amazon Simple Storage Service(Amazon S3)。

解决方法

**注意:**如果在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请确保您使用的是最新版本的 AWS CLI

如果您在配置中使用应用程序负载均衡器,则可以使用它将一个域重定向到另一个域:

  1. 打开 Amazon Elastic Compute Cloud(Amazon EC2)控制台
  2. 在导航窗格中的负载均衡下,选择负载均衡器
  3. 选择您的负载均衡器,然后选择侦听器
  4. 为要使用的负载均衡器侦听器选择查看/编辑规则
  5. 选择添加规则图标(加号)。
  6. 选择插入规则
  7. 选择添加条件
  8. 在条件部分(IF)中,选择添加条件。然后完成以下步骤:
    选择主机标头,然后输入您的主机名(例如,example.com)。
    如要保存,请选择复选标记图标。
  9. 在操作部分(THEN)中,选择添加操作。然后完成以下步骤:
    选择重定向到
    根据用例要求指定协议和端口。
    使用默认主机、路径、查询... 更改为使用自定义主机、路径、查询...
    对于主机,输入 example2.com
    对于路径查询,保留默认值(除非用例要求更改这两个值)。
    响应设置为 HTTP 301“永久移动”HTTP 302“已找到”
    如要保存,请选择
    复选标记
    图标。
    此时会出现 THEN 部分:
    重定向到 https://example2.com:443/#{path}?#{query}
    状态码: HTTP_301
  10. 选择保存

**注意:**如果两个域都指向同一个应用程序负载均衡器,则完成以下任务之一:

  • 为两个域提供单独的证书。
  • 使用主题备用名称(SAN)证书来验证域。

要确认重定向是否有效,请完成以下步骤:

1.    在 AWS CLI 中,使用以下 curl 函数:

curl
    -Iv https://example.com -L
* Rebuilt URL to: https://example.com/
. . .
* Connected to example.com (1.2.3.4) port 443 (#0)
<SSL handshake>
 > Host: example.com.   ------> Host name is example.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.    在互联网浏览器中,输入 example.com 并确认重定向到 example2.com

注意: 应用程序负载均衡器仅支持 301 和 302 重定向。这两种重定向允许客户端在后续请求中将 HTTP 方法从 POST 更改为 GET。如果需要 307 重定向,则重定向必须通过目标应用程序进行。

相关信息

有没有办法使用 Amazon S3 和 Amazon Route 53 将一个 apex 域重新导向到其他域?

Application Load Balancers now support multiple TLS certificates with smart selection using Server Name Indication (SNI)

AWS 官方
AWS 官方已更新 9 个月前