全部產品
Search
文件中心

Server Load Balancer:HTTP頭欄位

更新時間:Feb 28, 2025

如果您需要自訂HTTP頭欄位,並希望通過ALB監聽的附加HTTP頭欄位實現部分特定功能,您可以通過本文查看ALB支援的附加頭欄位及如何添加附加HTTP頭欄位。

ALB支援的附加頭欄位

HTTP頭欄位是指在超文字傳輸通訊協定 (HTTP)(HTTP)的請求和響應訊息中的訊息頭部分。HTTP頭欄位可以根據需求自訂,因此在Web伺服器和瀏覽器上可能存在非標準的HTTP頭欄位。下表列出了ALB支援的附加頭欄位及相關說明。

欄位名

說明

適用監聽協議

X-Forwarded-For

開啟通過X-Forwarded-For頭欄位來擷取來訪者用戶端IP地址。

  • 開啟X-Forwarded-For頭欄位:

    ALB將請求發送至後端伺服器之前附加、刪除請求中的X-Forwarded-For頭欄位。

    • 附加(預設)

      預設情況下,ALB會將用戶端IP地址儲存到X-Forwarded-For頭欄位中,並將該頭欄位資訊發送至後端伺服器。如果原始請求中未包含X-Forwarded-For頭欄位,ALB會建立以用戶端IP地址為請求值的X-Forwarded-For頭欄位。否則,ALB會將用戶端IP地址附加到現有X-Forwarded-For頭欄位中,然後將頭欄位發送至後端伺服器。X-Forwarded-For 要求標頭欄位可能包含多個以逗號分隔的 IP 位址。

    • 刪除

      ALB將請求發送至後端伺服器之前,會刪除請求中的X-Forwarded-For頭欄位。

  • 關閉X-Forwarded-For頭欄位:

    ALB將請求發送至後端伺服器之前,不會對請求中的X-Forwarded-For頭欄位進行任何修改。

欄位格式:

X-Forwarded-For: <client-ip-address>, <proxy1>, <proxy2>, …

點擊查看樣本:當您選擇開啟附加、刪除或關閉時,後端伺服器收到的X-Forwarded-For頭欄位

本樣本中,最後一跳為127.0.0.1

請求描述

請求樣本

開啟X-Forwarded-For頭欄位

關閉X-Forwarded-For頭欄位

附加

刪除

發送請求時沒有X-Forwarded-For頭欄位

GET /index.html HTTP/1.1

Host: example.com

X-Forwarded-For: 127.0.0.1

發送請求時包含一個X-Forwarded-For頭欄位和一個用戶端IP地址

GET /index.html HTTP/1.1

Host: example.com

X-Forwarded-For: 127.0.0.2

X-Forwarded-For: 127.0.0.2, 127.0.0.1

X-Forwarded-For: 127.0.0.2

發送請求時包含一個X-Forwarded-For頭欄位和多個用戶端IP地址

GET /index.html HTTP/1.1

Host: example.com

X-Forwarded-For: 127.0.0.2, 127.0.0.3

X-Forwarded-For: 127.0.0.2, 127.0.0.3, 127.0.0.1

X-Forwarded-For: 127.0.0.2, 127.0.0.3

ALB如何擷取用戶端真實IP教程,請參見通過ALB擷取用戶端真實IP

SLB-ID

開啟SLB-ID頭欄位擷取Server Load Balancer執行個體ID。

  • HTTP

  • HTTPS

  • QUIC

X-Forwarded-Proto

開啟X-Forwarded-Proto頭欄位擷取用戶端與負載平衡監聽串連時所用的協議。您的應用可以使用儲存在X-Forwarded-Proto頭欄位中的協議來重新導向至目標URL。

欄位格式:

X-Forwarded-Proto: <originatingProtocol>
  • HTTP

  • HTTPS

  • QUIC

X-Forwarded-Port

開啟X-Forwarded-Port頭欄位擷取用戶端與負載平衡監聽串連時所用的連接埠。

欄位格式:

X-Forwarded-Port: <port>
  • HTTP

  • HTTPS

  • QUIC

X-Forwarded-Host

開啟X-Forwarded-Host頭欄位擷取訪問Server Load Balancer執行個體用戶端的網域名稱。

欄位格式:

X-Forwarded-Host: <host>
  • HTTP

  • HTTPS

  • QUIC

X-Forwarded-Client-srcport

開啟X-Forwarded-Client-srcport頭欄位擷取訪問Server Load Balancer執行個體用戶端的連接埠。

欄位格式:

X-Forwarded-Client-srcport: <port>

X-Forwarded-Clientcert-subjectdn

開啟X-Forwarded-Clientcert-subjectdn頭欄位擷取訪問Server Load Balancer執行個體用戶端認證的所有者資訊。

開啟該頭欄位後,您需輸入自訂的HTTP頭名稱。

HTTPS

X-Forwarded-Clientcert-issuerdn

開啟X-Forwarded-Clientcert-issuerdn頭欄位擷取訪問Server Load Balancer執行個體用戶端認證的發行者資訊。

開啟該頭欄位後,您需輸入自訂的HTTP頭名稱。

HTTPS

X-Forwarded-Clientcert-fingerprint

開啟X-Forwarded-Clientcert-fingerprint頭欄位擷取訪問Server Load Balancer執行個體用戶端認證的指紋取值。

開啟該頭欄位後,您需輸入自訂的HTTP頭名稱。

HTTPS

X-Forwarded-Clientcert-clientverify

開啟X-Forwarded-Clientcert-clientverify頭欄位擷取對訪問Server Load Balancer執行個體用戶端認證的校正結果。

開啟該頭欄位後,您需輸入自訂的HTTP頭名稱。

HTTPS

說明
  • 建議您的後端伺服器在擷取HTTP頭欄位時,遵循HTTP協議規範,不區分HTTP頭欄位索引值的大小寫。

    • ALB向後端伺服器傳遞X-Forwarded-For附加頭欄位的首字母始終保持大寫。

    • 針對其他附加HTTP頭欄位,如果用戶端請求中攜帶某個頭欄位,ALB會按照用戶端請求中頭欄位格式向後端伺服器傳遞。否則,ALB會根據上表所示附加頭欄位的欄位名格式向後端伺服器傳遞。

  • 開啟X-Forwarded-Clientcert-subjectdnX-Forwarded-Clientcert-issuerdnX-Forwarded-Clientcert-fingerprintX-Forwarded-Clientcert-clientverify時,不允許將自訂的HTTP頭名稱設定為以下欄位:slb-idslb-ipx-forwarded-forx-forwarded-protox-forwarded-eipx-forwarded-portx-forwarded-client-srcportx-forwarded-hostconnectionupgradecontent-lengthtransfer-encodingkeep-alivetehostcookieremoteipauthority

在控制台附加HTTP頭欄位

在建立監聽時附加HTTP頭欄位

  1. 登入應用型負載平衡ALB控制台

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

  3. 選擇以下任一種方法,開啟監聽設定精靈。

    • 執行個體頁面,在目標執行個體操作列單擊建立監聽

    • 執行個體頁面,單擊目標執行個體ID。單擊監聽頁簽,然後單擊建立監聽

  4. 配置監聽設定精靈,完成以下配置,然後單擊下一步

    監聽配置

    說明

    選擇監聽協議

    選擇監聽的協議類型。

    高級配置

    單擊修改展開進階配置。

    附加HTTP頭欄位

    根據您的業務需求,選擇您需要開啟的自訂HTTP頭欄位。

    說明

    此處只羅列頭欄位相關的配置資訊,更多配置參數,請參見:

  5. 根據介面提示,完成建立監聽後續的配置步驟。

為已建立的監聽附加HTTP頭欄位

  1. 登入應用型負載平衡ALB控制台

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

  3. 執行個體頁面,單擊目標執行個體ID。

  4. 單擊監聽頁簽,在目標監聽操作列選擇更多>編輯監聽

  5. 編輯監聽對話方塊,在高級配置右側單擊修改

  6. 附加HTTP頭欄位地區添加、保留或移除頭欄位,然後單擊儲存

使用API附加HTTP頭欄位

您可以在建立監聽時附加頭欄位,也可以為已建立的監聽添加、保留或移除頭欄位。

相關文檔

控制台操作文檔

API文檔

  • CreateListener:在建立HTTP、HTTPS或QUIC監聽時通過設定XForwardedForConfig來添加HTTP頭欄位。

  • UpdateListenerAttribute:在更新監聽的配置時通過更新XForwardedForConfig參數來添加、保留或移除頭欄位。