本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Application Load Balancer 的接聽程式
接聽程式是檢查連線請求的程序,必須使用您已設定的通訊協定與連接埠。開始使用 Application Load Balancer 之前,必須新增至少一個接聽程式。如果負載平衡器沒有接聽程式,就無法接收來自用戶端的流量。您為接聽程式定義的規則,將決定負載平衡器將請求路由到已註冊目標 (例如 EC2 執行個體) 的方法。
目錄
接聽程式組態
接聽程式支援下列通訊協定與連接埠:
-
Protocols (通訊協定):HTTP、HTTPS
-
Ports (連接埠):1-65535
您可以使用 HTTPS 接聽程式來將加密和解密的工作卸載到您的負載平衡器,使得您的應用程式可以專注在商業邏輯上。如果接聽程式通訊協定是 HTTPS,則必須在接聽程式上至少部署一個 SSL 伺服器憑證。如需詳細資訊,請參閱為 Application Load Balancer 建立 HTTPS 接聽程式。
如果您必須確保目標解密的是 HTTPS 流量 (而不是負載平衡器),則可以建立在連接埠 443 上具有 TCP 接聽程式的 Network Load Balancer。使用 TCP 接聽程式時,負載平衡器會將加密的流量傳遞給目標,而不需要對流量進行解密。如需詳細資訊,請參閱《Network Load Balancer 使用者指南》。
WebSockets
Application Load Balancer 提供對 WebSocket 的原生支援。您可以使用 HTTP 連線,升級現有的與 WebSocket (ws
或 wss
) 的 HTTP/1.1 連線。升級時,用於請求 (對象是負載平衡器以及目標) 的 TCP 連線會透過負載平衡器變成用戶端與目標之間的持續性 WebSocket 連線。您可以透過 HTTP 和 HTTPS 接聽程式來使用 WebSocket。您為接聽程式選擇的選項會套用到 WebSocket 連線和 HTTP 流量。如需詳細資訊,請參閱《Amazon CloudFront 開發人員指南》中的 WebSocket 通訊協定的運作方式。
HTTP/2
Application Load Balancer 對使用 HTTPS 接聽程式的 HTTP/2 提供原生支援。您可以使用 HTTP/2 連線平行傳送高達 128 個請求。您可以使用通訊協定版本,使用 HTTP/2 將請求傳送至目標。如需詳細資訊,請參閱通訊協定版本。由於 HTTP/2 可更有效率地使用前端連線,您可能會注意到用戶端和負載平衡器之間的連線數較少。您無法使用 HTTP/2 的伺服器推送功能。
Application Load Balancer 的相互 TLS 身分驗證在傳遞和驗證模式下都支援 HTTP/2。如需詳細資訊,請參閱在 Application Load Balancer 中使用 TLS 進行相互身分驗證。
如需詳細資訊,請參閱 Elastic Load Balancing User Guide 中的 Request routing。
接聽程式屬性
以下是 Application Load Balancer 的接聽程式屬性:
routing.http.request.x_amzn_mtls_clientcert_serial_number.header_name
-
可讓您修改 X-Amzn-Mtls-Clientcert-Serial-Number HTTP 請求標頭的標頭名稱。
routing.http.request.x_amzn_mtls_clientcert_issuer.header_name
-
可讓您修改 X-Amzn-Mtls-Clientcert-Issuer HTTP 請求標頭的標頭名稱。
routing.http.request.x_amzn_mtls_clientcert_subject.header_name
-
可讓您修改 X-Amzn-Mtls-Clientcert-Subject HTTP 請求標頭的標頭名稱。
routing.http.request.x_amzn_mtls_clientcert_validity.header_name
-
可讓您修改 X-Amzn-Mtls-Clientcert-Validity HTTP 請求標頭的標頭名稱。
routing.http.request.x_amzn_mtls_clientcert_leaf.header_name
-
可讓您修改 X-Amzn-Mtls-Clientcert-Leaf HTTP 請求標頭的標頭名稱。
routing.http.request.x_amzn_mtls_clientcert.header_name
-
可讓您修改 X-Amzn-Mtls-Clientcert HTTP 請求標頭的標頭名稱。
routing.http.request.x_amzn_tls_version.header_name
-
可讓您修改 X-Amzn-Tls-Version HTTP 請求標頭的標頭名稱。
routing.http.request.x_amzn_tls_cipher_suite.header_name
-
可讓您修改 X-Amzn-Tls-Cipher-Suite HTTP 請求標頭的標頭名稱。
routing.http.response.server.enabled
-
可讓您允許或移除 HTTP 回應伺服器標頭。
routing.http.response.strict_transport_security.header_value
-
通知瀏覽器應該只使用 HTTPS 存取網站,而且未來任何使用 HTTP 存取網站的嘗試都應該自動轉換為 HTTPS。
routing.http.response.access_control_allow_origin.header_value
-
指定允許存取伺服器的原始伺服器。
routing.http.response.access_control_allow_methods.header_value
-
傳回從不同原始伺服器存取伺服器時,允許哪些 HTTP 方法。
routing.http.response.access_control_allow_headers.header_value
-
指定在請求期間可以使用哪些標頭。
routing.http.response.access_control_allow_credentials.header_value
-
指出提出請求時,瀏覽器是否應包含登入資料,例如 Cookie 或身分驗證。
routing.http.response.access_control_expose_headers.header_value
-
傳回瀏覽器可以向請求用戶端公開的標頭。
routing.http.response.access_control_max_age.header_value
-
指定預檢請求結果的快取時間,以秒為單位。
routing.http.response.content_security_policy.header_value
-
指定瀏覽器強制執行的限制,以協助將特定類型安全威脅的風險降至最低。
routing.http.response.x_content_type_options.header_value
-
指出是否應遵循且不變更 Content-Type 標頭中公告的 MIME 類型。
routing.http.response.x_frame_options.header_value
-
指出是否允許瀏覽器轉譯影格、iframe、內嵌或物件中的頁面。
預設動作
每個接聽程式都有預設動作,也稱為預設規則。預設規則無法刪除,且一律最後執行。您可以建立其他規則。這些規則包含優先順序、一或多個動作,以及一或多個條件。您可以隨時新增或編輯規則。如需詳細資訊,請參閱接聽程式規則。