全部產品
Search
文件中心

Server Load Balancer:使用CLB將HTTP訪問重新導向至HTTPS

更新時間:Dec 19, 2024

HTTPS是加密資料傳輸協議,安全性高。當企業進行HTTPS安全改造後,為了方便使用者訪問,可以使用CLB在使用者無感知的情況下將HTTP訪問重新導向至HTTPS。本文為您介紹如何使用CLB將HTTP訪問重新導向至HTTPS。

關鍵特性

  • 平滑切換:在重新導向期間,使用者在訪問網站時,感知不到從HTTP到HTTPS的重新導向過程,因為切換迅速且無縫,不會影響使用者的正常瀏覽行為。

  • 降低負載:後端伺服器不需要處理重新導向邏輯,可以更專註於核心商務邏輯的處理,有助於提高後端伺服器的處理效率。

應用情境

  • HTTPS安全改造:將現有網站或應用程式從HTTP改造為HTTPS,提升使用者和伺服器之間通訊的安全性。

  • 網域名稱更改/網站遷移:當網站遷移到新的網域名稱時,使用重新導向可以保持使用者訪問的連續性。

情境樣本

企業在阿里雲某地區購買了一個CLB執行個體,並配置了HTTP監聽,為了提升傳輸資料的安全性,需要對網站進行HTTPS安全改造。在改造過程中,防止使用者遇到服務中斷或訪問失敗的情況,該企業選擇使用CLB將HTTP訪問重新導向至HTTPS,從而平穩地將HTTP協議切換為HTTPS協議,保證業務安全性。

注意事項

  • CLB已經在全部地區開放了HTTP重新導向功能。

  • 配置HTTP重新導向至HTTPS時,HTTP監聽和HTTPS監聽在同一個CLB執行個體下。

  • CLB執行個體中已存在的HTTP監聽不支援開啟監聽轉寄。需要在建立HTTP監聽時開啟監聽轉寄。

前提條件

  • 您已建立後端伺服器ECS01和ECS02執行個體,並在ECS01和ECS02中均部署了應用服務,本文所涉及的伺服器已安裝Alibaba Cloud Linux 3.2104 LTS 64位作業系統。請參見自訂購買執行個體

    ECS中測試服務的部署命令參考樣本

    本文ECS01部署測試應用樣本如下:

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World ! This is ECS01." > index.html

    本文ECS02部署測試應用樣本如下:

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World ! This is ECS02." > index.html
  • 您已建立CLB執行個體,本文以公網CLB為例。請參見建立和管理CLB執行個體

  • 您已購買認證或者上傳第三方認證到SSL認證服務並綁定網域名稱。請參見正式認證快速入門

操作步驟

步驟一:建立HTTPS監聽

  1. 登入傳統型負載平衡CLB控制台

  2. 在頂部功能表列,選擇目標CLB執行個體所屬的地區。

  3. 執行個體管理頁面,找到目標執行個體,然後在操作列單擊監聽設定精靈

  4. 協議&監聽設定精靈,根據以下資訊配置監聽,然後單擊下一步

    此處僅列出和本文強相關的配置項,其餘參數保持預設值。其他參數的配置,請參見添加HTTPS監聽

    • 選擇監聽協議HTTPS

    • 監聽連接埠443

  5. SSL認證設定精靈,選擇已上傳的伺服器憑證,或者在選擇伺服器憑證時單擊建立伺服器憑證上傳一個伺服器憑證,其餘參數保持預設配置,然後單擊下一步

  6. 後端伺服器設定精靈,選擇後端伺服器。本文以預設伺服器組為例。

    1. 選擇預設伺服器組,然後單擊繼續添加

    2. 我的伺服器面板,選中ECS01和ECS02,然後單擊下一步

    3. 配置連接埠和權重設定精靈,配置ECS01和ECS02的權重,單擊添加

    4. 配置ECS01和ECS02的連接埠,本文都設定為80然後單擊下一步

  7. 健全狀態檢查設定精靈,保持預設配置,單擊下一步

  8. 組態稽核設定精靈,檢查監聽配置資訊,然後單擊提交,等待配置成功後,在彈出的對話方塊中單擊知道了

步驟二:配置HTTP監聽轉寄規則

  1. 監聽頁簽,單擊添加監聽

  2. 協議&監聽設定精靈,根據以下資訊配置監聽,其餘參數保持預設配置,然後單擊下一步

    監聽配置

    說明

    選擇監聽協議

    選擇監聽的協議類型。

    本文選擇HTTP

    監聽連接埠

    用來接收請求並向後端伺服器進行請求轉寄的監聽連接埠。

    本文設定為80

    進階配置

    單擊修改展開進階配置。

    本文僅修改監聽轉寄,其餘參數保持預設配置。

    監聽轉寄

    選擇是否將HTTP監聽的流量轉寄到HTTPS監聽。

    本文選擇開啟監聽轉寄,並選擇目的監聽步驟一:建立HTTPS監聽建立的HTTPS監聽。

  3. 組態稽核頁簽,單擊提交,等待配置成功後,單擊知道了

監聽轉寄開啟後,該CLB執行個體所有來自HTTP:80的訪問都會轉寄至HTTPS:443,並根據HTTPS:443的監聽配置進行轉寄。

步驟三:佈建網域名解析

說明
  • 對於非阿里雲註冊網域名稱,需先將網域名稱添加到雲解析控制台,才可以進行網域名稱解析設定。

  • 如果您的CLB執行個體為私網類型,需先為其綁定Elastic IP Address(EIP),隨後配置A記錄將網域名稱解析指向該EIP實現公網訪問。

  1. 在左側導覽列,選擇傳統型負載平衡CLB > 執行個體管理

  2. 執行個體管理頁面,選擇目標執行個體,並複製目標執行個體的服務地址

  3. 執行以下步驟添加A解析記錄。

    1. 登入網域名稱解析控制台

    2. 權威網域名稱解析頁面,找到目標網域名稱,在操作列單擊解析設定

    3. 解析設定頁面,單擊添加記錄

    4. 添加記錄面板配置以下資訊,其他參數可保持預設值或根據實際情況修改,完成後單擊確定

      配置

      說明

      記錄類型

      在下拉式清單中選擇A

      主機記錄

      您的網域名稱的首碼。

      說明

      建立網域名稱為根網域名稱時,主機記錄為@

      記錄值

      輸入欄位名對應的A地址,即您複製的CLB執行個體的服務地址。

步驟四:驗證結果

以任意一台可以訪問公網的終端為例,測試訪問CLB的HTTP請求是否能夠重新導向至HTTPS。

  1. 開啟終端的cmd視窗。

  2. 執行curl -v http://<CLB 網域名稱>,如下圖所示,收到狀態代碼302,表示訪問CLB的請求重新導向至HTTPS。

    image

重新導向狀態代碼說明

CLB支援的重新導向狀態代碼及說明如下表所示。

狀態代碼

說明

302

臨時重新導向,請求的資源只是暫時被移動,用戶端應繼續使用原有URL訪問。

常見問題

為何HTTP監聽中找不到開啟監聽轉寄的配置?

之前在CLB執行個體中已經建立的HTTP監聽不能開啟監聽轉寄。您需要重新建立HTTP監聽,才可以開啟監聽轉寄。

相關文檔

CLB重新導向功能通過在CLB執行個體上配置監聽器規則來實現,而ALB在應用程式層面對HTTP請求進行重新導向,具有更靈活的控制能力和更多的配置選項,支援基於路徑的重新導向或者基於要求標頭的重新導向。請參考使用ALB將HTTP訪問重新導向至HTTPS