如何使用 Application Load Balancer 將一個網域重新導向至另一個網域?

2 分的閱讀內容
0

我想要使用 Application Load Balancer 將一個網域重新導向至另一個網域。

簡短描述

Application Load Balancer 服務支援網域名稱的重新導向,以及從 HTTP 重新導向至 HTTPS。如果您有指向 Application Load Balancer 的網域,請使用 Application Load Balancer 設定網域。

**注意事項:**最佳實踐是使用 Application Load Balancer 設定網域,而不是使用 Amazon Simple Storage Service (Amazon S3)。

解決方案

**注意事項:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請確保您使用的是最新版本 AWS CLI

如果您使用 Application Load Balancer 作為組態的一部分,則可以使用它將一個網域重新導向到另一個網域:

  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. 選擇儲存

**注意事項:**如果兩個網域都指向相同的 Application Load Balancer,請完成下列其中一項任務:

  • 對兩個網域使用單獨的憑證。
  • 使用主體替代名稱 (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

注意事項: Application Load Balancer 僅支援 301 和 302 重新導向。這些重新導向允許用戶端在後續請求中將 HTTP 方法從 POST 變更為 GET。如果需要 307 重新導向,則重新導向必須透過目標應用程式進行。

相關資訊

如何使用 Amazon S3 和 Amazon Route 53 將根網域重新導向到其子網域或任何其他網域?

Application Load Balancers 現在會使用伺服器名稱指示 (SNI) 支援具有智慧選取功能的多個 TLS 憑證

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