選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

設定 Classic Load Balancer 的代理通訊協定

焦點模式
設定 Classic Load Balancer 的代理通訊協定 - Elastic Load Balancing

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Proxy Protocol 是一項網際網路協定請求連線的連線資訊從來源到目的地的連線請求。Elastic Load Balancing 使用 Proxy Protocol 版本 1,該版本使用可供人類讀取的標題格式。

根據預設,當您使用傳輸控制通訊協定 (TCP) 和前端和後端連線,您無需修改請求標題,Classic Load Balancer 會轉發請求到執行個體。如果您啟用 Proxy Protocol,以可供人類讀取的標題新增到請求標題與連線資訊,例如來源 IP 地址、目的地 IP 地址和連接埠號碼。然後標題會做為請求的一部分傳送到執行個體。

注意

AWS Management Console 不支援啟用代理通訊協定。

Proxy Protocol 標題

Proxy Protocol 標題協助您識別用戶端的 IP 地址,當您使用負載平衡器,其使用 TCP 當後端連線。因為負載平衡器會攔截用戶端與您的執行個體的流量,所以您的執行個體存取日誌包含負載平衡器的 IP 地址,而不包含來源用戶端。您可以剖析請求中的第一行來擷取您的用戶端 IP 地址和連接埠號碼。

IPv6 在標題的代理地址是您的負載平衡器的公有 IPv6 地址。此 IPv6 地址符合解決的 IP 地址,從您的負載平衡器的 DNS 名稱,開始使用 ipv6dualstack。如果用戶端使用 IPv4 連接,則標頭中代理伺服器的地址為負載平衡器的私有 IPv4 地址,無法透過 DNS 查詢進行解析。

Proxy Protocol 列是單一列以換行結束行 ("\r\n"),格式如下:

PROXY_STRING + single space + INET_PROTOCOL + single space + CLIENT_IP + single space + PROXY_IP + single space + CLIENT_PORT + single space + PROXY_PORT + "\r\n"
範例:IPv4

以下是 IPv4 的 Proxy Protocol 列範例:

PROXY TCP4 198.51.100.22 203.0.113.7 35646 80\r\n

啟用 Proxy Protocol 先決條件

開始之前,請執行以下動作:

  • 確認您的負載平衡器不在啟用 Proxy Protocol 的代理伺服器後方。如果 Proxy Protocol 啟用於代理伺服器和負載平衡器,負載平衡器新增另一個標題到請求,其從代理伺服器已有標題。根據您的執行個體設定方法,這重複可能會導致錯誤。

  • 確認您的執行個體可以處理 Proxy Protocol 資訊。

  • 確認您的接聽程式設定支援 Proxy Protocol。如需詳細資訊,請參閱Classic Load Balancer 的接聽程式組態

使用 AWS CLI來啟用 Proxy Protocol

若要啟用 Proxy Protocol ,您需要建立 ProxyProtocolPolicyType 類型的政策,然後在執行個體連接埠啟用政策。

請使用下列步驟來建立新的政策,為您的負載平衡器的 ProxyProtocolPolicyType 類型,在連接埠 80 設定新建立的政策到執行個體,和驗證政策已啟用。

為您的負載平衡器啟用 Proxy Protocol
  1. (選用) 使用以下 describe-load-balancer-policy-types 命令列出由 Elastic Load Balancing 支援的政策:

    aws elb describe-load-balancer-policy-types

    回應包含名稱和描述支援的政策類型。以下顯示 ProxyProtocolPolicyType 類型的輸出:

    { "PolicyTypeDescriptions": [ ... { "PolicyAttributeTypeDescriptions": [ { "Cardinality": "ONE", "AttributeName": "ProxyProtocol", "AttributeType": "Boolean" } ], "PolicyTypeName": "ProxyProtocolPolicyType", "Description": "Policy that controls whether to include the IP address and port of the originating request for TCP messages. This policy operates on TCP/SSL listeners only" }, ... ] }
  2. 使用以下 create-load-balancer-policy 命令來建立啟用 Proxy Protocol 的政策:

    aws elb create-load-balancer-policy --load-balancer-name my-loadbalancer --policy-name my-ProxyProtocol-policy --policy-type-name ProxyProtocolPolicyType --policy-attributes AttributeName=ProxyProtocol,AttributeValue=true
  3. 使用以下 set-load-balancer-policies-for-backend-server 的命令,在指定的連接埠啟用新建立的政策。請注意,這個命令會取代目前組的啟用政策。因此,--policy-names 選項必須指定您要加入清單的政策 (例如,my-ProxyProtocol-policy) 和任何目前啟用政策 (例如,my-existing-policy)。

    aws elb set-load-balancer-policies-for-backend-server --load-balancer-name my-loadbalancer --instance-port 80 --policy-names my-ProxyProtocol-policy my-existing-policy
  4. (選用) 使用以下 describe- load-balancers 命令來驗證 Proxy Protocol 已啟用:

    aws elb describe-load-balancers --load-balancer-name my-loadbalancer

    回應包含下列資訊,其中說明 my-ProxyProtocol-policy 政策與連接埠 80 相關聯。

    { "LoadBalancerDescriptions": [ { ... "BackendServerDescriptions": [ { "InstancePort": 80, "PolicyNames": [ "my-ProxyProtocol-policy" ] } ], ... } ] }

使用 AWS CLI來停用 Proxy Protocol

您可以停用與執行個體關聯的政策,然後讓他們在稍後時間啟用。

停用 Proxy Protocol 政策
  1. 使用以下 set-load-balancer-policies-for-backend-server 命令來停用 Proxy Protocol 政策並從 --policy-names 省略選項,但包括其他政策,應該維持啟用狀態 (例如,my-existing-policy)。

    aws elb set-load-balancer-policies-for-backend-server --load-balancer-name my-loadbalancer --instance-port 80 --policy-names my-existing-policy

    如果沒有啟用其他政策,以 --policy-names 指定空白字串選項,如下所示:

    aws elb set-load-balancer-policies-for-backend-server --load-balancer-name my-loadbalancer --instance-port 80 --policy-names "[]"
  2. (選用) 使用以下 describe- load-balancers 命令來驗證已停用的政策:

    aws elb describe-load-balancers --load-balancer-name my-loadbalancer

    回應包含下列資訊,其中說明無連接埠與政策相關聯。

    { "LoadBalancerDescriptions": [ { ... "BackendServerDescriptions": [], ... } ] }

下一個主題:

標籤

上一個主題:

去同步緩解模式
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。