如何在 Route 53 中將一個網域重引導至另一個網域?

上次更新日期:2021 年 5 月 27 日

我需要將用戶端從一個網域重新引導至 Amazon Route 53 中的另一個網域。該如何進行?

簡短描述

設定網域重新引導有以下三種常見案例:

1.    從一個網域重新引導至另一個網域。例如:
        頂級網域 (example.com) 到頂級網域 (anydomain.com)
        頂級網域 (example.com) 到子網域 (www.anydomain.com),包括 www.example.com
        子網域 (www.example.com) 到頂級網域 (anydomain.com),包括 example.com
        子網域 (www.example.com) 到子網域 (www.anydomain.com),包括 anysubdomain.example.com
2.    將網域從 HTTP 重新引導至 HTTPS。例如:
        頂級網域 (http://example.com) 到 Apex 網域 (https://anydomain.com),包括 https://example.com
        頂級網域 (http://example.com) 到子網域 (https://www.anydomain.com),包括 https://www.example.com
        子網域 (http://www.example.com) 到頂級網域 (https://anydomain.com),包括 https://example.com
        子網域 (http://www.example.com) 到子網域 (https://www.anydomain.com),包括 https://anysubdomain.example.com
3.    重新引導至不同的 URI 路徑 (路徑轉發)。例如:
        example.com、example.com/<path>、www.example.com 或 www.example.com/<path>
        example.com/<newpath>、www.example.com/<newpath>、anydomain.com/<newpath> 或 anysubdomain.anydomain.com/<newpath>

解決方案

使用 CNAME 記錄從一個網域重新引導至另一個網域

對於此案例,在您的 Route 53 託管區域建立 CNAME 記錄,以設定 DNS 重新引導。

若要從非頂級網域重新引導至其他網域類型,請使用以下其中一種格式設定您的 CNAME 記錄 (根據您的使用案例):

  • www.example.com CNAME anysubdomain.example.com 或 www.anydomain.com
  • www.example.com CNAME example.com 或 anydomain.com

使用 Amazon S3 和 CloudFront 重新引導至不同的 URI 路徑,或從 HTTP 重新引導至 HTTPS

這兩種常見的重新引導案例無法透過使用 CNAME 記錄的簡單 DNS 重新引導來實現。在這些案例中,必須在應用程式端設定重新引導。您可以使用 Amazon CloudFront、Amazon Simple Storage Service (Amazon S3) 靜態 Web 託管和 Route 53 來重新引導請求。
注意:Amazon S3 靜態 Web 託管僅支援 HTTP 協定。必須使用 CloudFront 分配來執行從 HTTP 到 HTTPS 的重新引導。

先決條件

若要在此案例中重新引導您的網域,需要:

  • 在 Route 53 中託管網域 (example.com) 的託管區域
  • 將資源紀錄新增至網域 (example.com) 託管區域的許可
  • 建立 Amazon S3 儲存貯體的許可
  • 建立 CloudFront 分配的許可
  • 您的網域名稱 (example.com 和 www.example.com) 的 AWS Certificate Manager (ACM) 憑證

Amazon S3 組態

  1. 開啟 Amazon S3 主控台
  2. 建立具有全域唯一名稱的 S3 儲存貯體。
  3. 選取您剛剛建立的儲存貯體,然後選擇 Properties (屬性)。
  4. 對於 Static website hosting (靜態網站託管),選擇 Edit (編輯)。
  5. 對於 Hosting type (託管類型),選擇 Redirect requests for an object (重新引導物件的請求)。
  6. 輸入 Host name (託管名稱) (新的重新引導位置 domain.com 或 domain.com/xxx/xxx),然後選擇新網域的協定。
  7. 選擇 Save (儲存)。
  8. 記下儲存貯體的端點 (example.com.s3-website-us-east-1.amazonaws.com)。您將在以下任務中使用該資訊為 CloudFront 設定原始網域名稱。

CloudFront 組態

  1. 開啟 CloudFront 主控台。
  2. 選擇 Create Distribution (建立分配)。
  3. 對於 Web,選擇 Get Started (開始使用)。
  4. 對於 Origin Domain Name (原始網域名稱),輸入您在上一個任務中記下的 S3 儲存貯體的網站端點。
  5. 對於 Viewer Protocol Policy (檢視器協定政策),選擇 Redirect HTTP to HTTPS (將 HTTP 重新引導至 HTTPS)。
  6. 根據您的要求設定其餘的 CloudFront 設定。
  7. 如果您沒有在 CloudFront 中使用自訂網域,則選擇 Create Distribution (建立分配),以完成該程序。
    如果您正在使用自訂網域,請在建立分配之前完成以下附加步驟:
    對於 Alternate Domain Names (CNAMEs) (備用網域名稱 (CNAME)),輸入您的自訂網域 (example.com)。
    對於 SSL Certificate (SSL 憑證),選擇 Custom SSL Certificate (自訂 SSL 憑證)。然後,選擇要指派給分配的自訂 SSL 憑證。
    注意:如需安裝憑證的詳細資訊,請參閱如何設定我的 CloudFront 分配以使用 SSL/TLS 憑證?
    選擇 Create Distribution (建立分配)。

Route 53 組態

  1. 開啟 Route 53 主控台
  2. 選擇託管區域 (example.com)。
  3. 針對 example.com 建立資源紀錄:
    針對 Record Type (資源紀錄),選擇 A – IPv4 address (A – IPv4 地址)。
    針對 Alias (別名),選擇 Yes (是)。
    針對 Alias Target (別名目標),選擇空白值欄位。從下拉式清單中,選取您在上一個任務中建立的 CloudFront 分配的網域名稱。
  4. 根據您的要求進行其餘設定,然後選擇 Create (建立)。

使用 Application Load Balancer 重新引導網域名稱,或從 HTTP 重新引導至 HTTPS

Application Load Balancer 服務支援網域名稱重新引導,以及 HTTP 到 HTTPS 的重新引導。如果您有一個指向 Application Load Balancer 的網域,最佳實務是使用 Application Load Balancer,而不是 Amazon S3 來設定重新引導。

如果您使用 Application Load Balancer 作為組態的一部分,則可透過完成以下步驟來使用該服務將一個網域重新引導至另一個網域。

設定 Application Load Balancer

  1. 開啟 Amazon Elastic Compute Cloud (Amazon EC2) 主控台
  2. 在導覽窗格中,選擇 Load Balancing (負載平衡) 下的 Load Balancers (負載平衡器)。
  3. 選擇負載平衡器,然後選擇 Listeners (接聽程式)。
  4. 針對要使用的負載平衡器接聽程式,選擇 View/edit rules (檢視/編輯規則)。
  5. 選擇 Add rule (新增規則) 圖示 (加號)。
  6. 選擇 Insert Rule (插入規則)。
  7. 選擇 Add condition (新增條件)。
  8. conditions section (條件區段) (IF),選擇 Add condition (新增條件)。
  9. 選擇 Host header (主機標頭),然後輸入主機名稱 (例如 example.com)。
  10. 若要儲存,選擇 checkmark (核取標記) 圖示。
  11. actions (動作) 區段 (THEN) 中,選擇 Add action (新增動作)。
  12. 選擇 Redirect to (重新引導至)。
  13. 根據您的使用案例要求指定協定和連接埠。
  14. Original host, path, query (原始主機、路徑、查詢) 變更為 Custom host, path, query (自訂主機、路徑、查詢)。
  15. 針對 Host (主機),輸入 example2.com
  16. 針對 Path and Query (路徑和查詢),保留預設值 (除非您的使用案例要求對其進行變更)。
  17. Response (回應) 設定為 HTTP 301 "Permanently move" (HTTP 301「永久移動」) 或 HTTP 302 "Found" (HTTP 302「已找到」)。
  18. 若要儲存,選擇 checkmark (核取標記) 圖示。
    THEN 區段顯示:
    重新引導至 https://example2.com:443/#{path}?#{query}
    狀態碼:HTTP_301
  19. 選擇 Save (儲存)。

注意:如果兩個網域都指向同一個 Application Load Balancer,請確保:

  • 兩個網域都有單獨的憑證
    -或-
  • 使用主體替代名稱 (SAN) 憑證來驗證網域

確認重新引導按預期運作

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

1.    在 AWS CLI 中,使用 curl 公用程式命令。

範例命令:

curl -IL https://swapnil.live.

範例輸出:

curl -IL https://swapnil.live  --> Initial Link
HTTP/2 301
server: awselb/2.0
date: Sat, 15 May 2021 09:00:14 GMT
content-type: text/html
content-length: 134
location: https://www.example.com:443/  --> New redirected link 

HTTP/2 200  --> 200 OK Response from backend
content-encoding: gzip
accept-ranges: bytes
age: 155230
cache-control: max-age=604800
content-type: text/html; charset=UTF-8
date: Sat, 15 May 2021 09:00:14 GMT
etag: "3147526947"
expires: Sat, 22 May 2021 09:00:14 GMT
last-modified: Thu, 17 Oct 2019 07:18:26 GMT
server: ECS (dcb/7EEF)
x-cache: HIT
content-length: 648

2.    在您的網際網路瀏覽器中,輸入您要重新引導的目標網域,並確認其重新引導至目標網域。

3.    (選用) 如需更多詳細資訊,請檢閱 HTTP 封存 (HAR) 檔案。HAR 檔案是一個 JSON 檔案,其中包含瀏覽器記錄的最新網路活動。

擷取 HAR 檔案

Google Chrome︰

  1. 在瀏覽器中,選擇 Customize and control Google Chrome (自訂和控制 Google Chrome)。
  2. 選擇 More tools (更多工具)、Developer tools (開發人員工具)。
  3. 在瀏覽器中開啟 DevTools 後,選擇 Network (網路) 面板。
  4. 選中 Preserve log (保留日誌) 核取方塊。
  5. 選擇 Clear (清除),以清除所有目前的網路請求。
    注意:當您重新載入頁面時,可以看到前幾個請求中發生的重新引導,具體取決於設定的重新引導級別。
  6. 在 DevTools 中,開啟任何網路請求的內容選單 (按一下滑鼠右鍵)。
  7. 選擇 Save all as HAR with content (將所有內容另存新檔為 HAR),然後儲存檔案。

Microsoft Edge (Chromium)︰

  1. 在瀏覽器中,選擇 Settings and more (設定及更多)。
  2. 選擇 More tools (更多工具)、Developer tools (開發人員工具)。
  3. 在瀏覽器中開啟 DevTools 後,選擇 Network (網路) 面板。
  4. 選中 Preserve log (保留日誌) 核取方塊。
  5. 選擇 Clear (清除),以清除所有目前的網路請求。
    注意:當您重新載入頁面時,可以看到前幾個請求中發生的重新引導,具體取決於設定的重新引導級別。
  6. 在 DevTools 中,開啟任何網路請求的內容選單 (按一下滑鼠右鍵)。
  7. 選擇 Save all as HAR with content (將所有內容另存新檔為 HAR),然後儲存檔案。

Mozilla Firefox︰

  1. 在瀏覽器中,選擇 Open menu (開啟選單)。
  2. 選擇 Web Developer (Web 開發人員)。
  3. Web Developer 選單中,選擇 Network (網路)。
    注意:在某些版本的 Firefox 中,Web Developer 選單位於 Tools (工具) 選單中。
  4. Network Monitor (網路監控器) 上,選中 Persist Logs (永久日誌) 核取方塊。
  5. 選擇 trash can (垃圾桶) 圖示 (清除),以清除所有目前的網路請求。
    注意:當您重新載入頁面時,可以看到前幾個請求中發生的重新引導,具體取決於設定的重新引導級別。
  6. Network Monitor (網路監控器) 中,開啟請求清單中任何網路請求的內容選單 (按一下滑鼠右鍵)。
  7. 選擇 Save All As HAR (全部另存新檔為 HAR),然後儲存檔案。

分析 HAR 檔案

  1. 開啟您的偏好的 HAR 分析器,例如 Google 的 HAR 分析器。
  2. 上傳您剛剛建立的 HAR 檔案。
  3. 清除 3XX 之外的所有 HTTP 程式碼的核取方塊。
  4. 選擇任何列出的項目,以獲取有關重新引導請求的詳細資訊。

此文章是否有幫助?


您是否需要帳單或技術支援?