全部產品
Search
文件中心

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

更新時間:Jun 28, 2025

HTTPS是加密資料傳輸協議,安全性高。當您需要進行HTTPS安全改造時,您可以使用應用型負載平衡ALB將HTTP訪問重新導向至HTTPS,讓使用者在無感知的情況下將HTTP訪問重新導向至HTTPS。

功能簡介

ALB提供HTTP到HTTPS的重新導向功能。通過配置監聽轉寄規則,將HTTP協議的請求重新導向到HTTPS,從而確保資料轉送加密,防止中間人攻擊和資料泄露,協助您輕鬆構建符合現代安全標準的網路架構。

關鍵特性

  • 靈活配置:支援自訂重新導向規則,可以基於路徑、HTTP標題等參數設定特定的重新導向策略,滿足複雜應用情境的需求。

  • 狀態代碼設定:支援選擇不同的HTTP狀態代碼進行重新導向,如301(永久重新導向)或302(臨時重新導向)。

  • 效能最佳化:將重新導向邏輯轉移到負載平衡層,後端伺服器無需處理重新導向邏輯,專註於核心業務處理,提升整體效率。

應用情境

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

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

  • 基於HTTP標題重新導向:根據HTTP標題資訊(如語言、裝置類型等),將使用者請求重新導向至不同的HTTPS應用,實現個人化服務。

情境樣本

某企業在阿里雲華東1(杭州)地區購買的ALB執行個體部署了業務並對外提供服務。企業希望在網域名稱保持不變的情況下,將HTTP協議切換為HTTPS協議,以實現資料加密,並提升使用者體驗的流暢性與多樣性。

前提條件

  • 建立公網ALB執行個體(基礎版、標準版和WAF增強版均支援)。

  • 已為ALB執行個體建立伺服器組(後端協議為HTTP)。

  • 已在ALB執行個體的伺服器組中分別添加ECS01和ECS02執行個體,並在ECS01和ECS02中均部署了應用服務。

    本文以Alibaba Cloud Linux 3作業系統為例,並使用Nginx配置HTTP 80服務。

    參考樣本:ECS01部署測試服務

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World ! This is ECS01." > index.html
  • 已為ALB執行個體建立HTTP監聽

  • 註冊自有網域名稱並完成ICP備案,且通過自有網域名稱為ALB添加CNAME記錄

  • 建立並申請認證或者上傳第三方認證到SSL認證服務並綁定自有網域名稱。

操作步驟

本文通過以下兩種方式介紹通過ALB實現HTTP訪問重新導向至HTTPS,您可以按需配置:

  • HTTP連接埠所有請求重新導向至HTTPS:無條件地將所有到達ALB的HTTP請求重新導向到HTTPS,適用於強制要求所有訪問都使用HTTPS的情境,例如全站啟用HTTPS或統一安全性原則。

  • 基於HTTP標題重新導向至HTTPS:基於HTTP要求標頭(如語言、裝置類型等)進行條件判斷,只有滿足特定條件的請求才會被重新導向。適用於需按條件區分跳轉目標的情境,例如,可以根據使用者語言偏好重新導向到不同的語言版本網站,或者根據裝置類型(手機、平板、PC)或瀏覽器版本,將請求重新導向到移動端或案頭端的HTTPS版本。

HTTP連接埠所有請求均重新導向至HTTPS

步驟一:配置HTTPS監聽

  1. 應用型負載平衡ALB控制台頂部功能表列選擇ALB執行個體所屬地區。

  2. 在ALB執行個體頁面,單擊目標執行個體ID。

  3. 監聽頁簽,單擊建立監聽

  4. 負載平衡業務設定精靈頁面,完成以下配置,然後單擊下一步

    此處僅列出和本文強相關的配置項,HTTPS監聽其他參數配置可保持預設值或根據實際情況修改。

    1. 配置監聽設定精靈,選擇監聽協議HTTPS監聽連接埠443,然後單擊下一步

      添加HTTPS監聽

    2. 配置SSL認證設定精靈,選擇已建立好的伺服器憑證。然後單擊下一步

    3. 選擇伺服器組設定精靈,選擇已建立好的伺服器組,並查看後端伺服器資訊,然後單擊下一步

    4. 組態稽核設定精靈頁面,確認配置資訊,單擊提交

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

  1. 監聽頁簽,找到已建立的HTTP監聽,然後在操作列單擊查看/編輯轉寄規則

  2. 轉寄規則頁簽,單擊插入新規則

  3. 插入轉寄規則地區,配置下表參數,然後單擊確定

    此處僅列出和本文強相關的配置項,轉寄規則其他參數配置可保持預設值或根據實際情況修改。

    參數

    說明

    轉寄條件

    選擇路徑並輸入/*

    轉寄動作

    選擇重新導向至

    • 協議:本樣本選擇HTTPS

    • 連接埠:輸入您已建立的HTTPS協議監聽連接埠。本文輸入443

    • 狀態代碼:本樣本保持預設值301

    HTTP全部重新導向HTTPS

步驟三:結果驗證

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

  1. 開啟終端的命令列視窗。

  2. 執行curl -v -L http://<自有網域名稱>

    如下圖所示,收到狀態代碼301,表示訪問ALB的請求重新導向至HTTPS,應答伺服器為ECS01。

    ECS01-1

    ECS01-2

    重複執行命令,應答伺服器變為ECS02。

    ECS02-1

    ECS02-2

基於HTTP標題重新導向至HTTPS

本文以HTTP標題Accept-Languagezh-CN,zh的HTTP請求重新導向至HTTPS為例。

步驟一:配置HTTPS監聽

  1. 應用型負載平衡ALB控制台頂部功能表列選擇ALB執行個體所屬地區。

  2. 在ALB執行個體頁面,單擊目標執行個體ID。

  3. 監聽頁簽,單擊建立監聽

  4. 負載平衡業務設定精靈頁面,完成以下配置,然後單擊下一步

    此處僅列出和本文強相關的配置項,HTTPS監聽其他參數配置可保持預設值或根據實際情況修改。

    1. 配置監聽設定精靈,選擇監聽協議HTTPS監聽連接埠443,然後單擊下一步

      添加HTTPS監聽

    2. 配置SSL認證設定精靈,選擇已建立好的伺服器憑證。然後單擊下一步

    3. 選擇伺服器組設定精靈,選擇已建立好的伺服器組,並查看後端伺服器資訊,然後單擊下一步

    4. 組態稽核設定精靈頁面,確認配置資訊,單擊提交

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

  1. 監聽頁簽,找到已建立的HTTP監聽,然後在操作列單擊查看/編輯轉寄規則

  2. 轉寄規則頁簽,單擊插入新規則

  3. 插入轉寄規則地區,配置下表參數,然後單擊確定

    此處僅列出和本文強相關的配置項,轉寄規則其他參數配置可保持預設值或根據實際情況修改。

    參數

    說明

    轉寄條件

    選擇HTTP標題

    • 鍵是:本樣本輸入Accept-Language

    • 值是:本樣本輸入zh-CN,zh

    轉寄動作

    選擇重新導向至

    • 協議:本樣本選擇HTTPS

    • 網域名稱:輸入您的自有網域名稱。

    • 連接埠:輸入您已建立的HTTPS協議監聽連接埠。本文輸入443

    • 狀態代碼:本樣本選擇302

    基於HTTP標題重新導向至HTTPS

步驟三:結果驗證

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

  1. 開啟終端的命令列視窗。

  2. 執行curl -v -L -H "Accept-Language: zh-CN,zh" http://<自有網域名稱>.

    如下圖所示,收到狀態代碼302,表示訪問ALB的請求重新導向至HTTPS,應答伺服器為ECS01。

    ECS01-1

    ECS01-2

    重複執行命令,應答伺服器變為ECS02。

    ECS02-1

    ECS02-2

重新導向狀態代碼說明

ALB重新導向狀態代碼預設為301,您可以根據業務需求選擇其他重新導向狀態代碼。ALB支援的重新導向狀態代碼及說明如下:

狀態代碼

說明

301

永久移動。請求的資源已被永久移動至新的URL,建議用戶端的請求都使用新的URL代替。

302

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

303

與302類似表示資源的臨時移動,無論原始要求方法是什麼,要求用戶端在重新導向後使用GET方法發起請求。

307

與302類似表示資源的臨時移動,但用戶端必須保持原要求方法(如POST請求重新導向後仍為POST,不允許POST轉為GET)。

308

與301類似表示資源的永久移動,用戶端必須保持原要求方法(如POST請求重新導向後仍為POST,不允許POST轉為GET)。

關於狀態代碼說明的更多資訊請參見HTTP/1.1標準(RFC 7231)

相關文檔

  • 若您的業務有更高的安全需求,您可以進一步瞭解ALB的以下功能:

    • 配置全鏈路HTTPS訪問實現加密通訊:ALB提供全鏈路HTTPS加密功能,可以實現用戶端到ALB、ALB到後端伺服器之間的全鏈路加密通訊,提升敏感業務的安全性。

    • 使用ALB部署HTTPS業務(雙向認證):ALB提供HTTPS雙向認證功能,在用戶端與服務端建立串連之前,雙方需進行身分識別驗證。僅在雙方均成功通過認證後,方可建立安全通訊通道進行資料轉送,從而確保只有授權的用戶端能夠訪問接入,有效降低中間人攻擊和未授權訪問等安全風險。

  • 瞭解更多關於監聽的轉寄條件以及轉寄動作,請參見配置監聽轉寄規則

  • 通過ALB監聽轉寄規則還可以實現以下情境需求:

    • 使用ALB流量鏡像功能實現模擬壓測:通過ALB提供的流量鏡像功能可以實現線上流量模擬,將線上流量鏡像到測試環境的後端伺服器,同時ALB自動丟棄鏡像後端伺服器返回的響應資料,保證鏡像後端伺服器的測試業務不會影響到線上業務。

    • 使用ALB實現灰階發布:通過配置基於特定條件或不同伺服器組流量權重的監聽轉寄規則,將部分請求轉寄至新版本應用,逐步驗證新版本穩定性,實現灰階發布。