

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

# Application Load Balancer 的接聽程式
<a name="load-balancer-listeners"></a>

*接聽程式*是檢查連線請求的程序，必須使用您已設定的通訊協定與連接埠。開始使用 Application Load Balancer 之前，必須新增至少一個接聽程式。如果負載平衡器沒有接聽程式，就無法接收來自用戶端的流量。您為接聽程式定義的規則，將決定負載平衡器將請求路由到已註冊目標 (例如 EC2 執行個體) 的方法。

**Topics**
+ [接聽程式組態](#listener-configuration)
+ [接聽程式屬性](#listener-attributes)
+ [預設動作](#default-action)
+ [建立 HTTP 接聽程式](create-listener.md)
+ [SSL 憑證](https-listener-certificates.md)
+ [安全政策](describe-ssl-policies.md)
+ [建立 HTTPS 接聽程式](create-https-listener.md)
+ [更新 HTTPS 接聽程式](listener-update-certificates.md)
+ [接聽程式規則](listener-rules.md)
+ [交互 TLS 驗證](mutual-authentication.md)
+ [使用者身分驗證](listener-authenticate-users.md)
+ [JWT 驗證](listener-verify-jwt.md)
+ [X-Forwarded 標頭](x-forwarded-headers.md)
+ [HTTP 標頭修改](header-modification.md)
+ [刪除接聽程式](delete-listener.md)

## 接聽程式組態
<a name="listener-configuration"></a>

接聽程式支援下列通訊協定與連接埠：
+ **Protocols (通訊協定)**：HTTP、HTTPS
+ **Ports (連接埠)**：1-65535

您可以使用 HTTPS 接聽程式來將加密和解密的工作卸載到您的負載平衡器，使得您的應用程式可以專注在商業邏輯上。如果接聽程式通訊協定是 HTTPS，則必須在接聽程式上至少部署一個 SSL 伺服器憑證。如需詳細資訊，請參閱[為 Application Load Balancer 建立 HTTPS 接聽程式](create-https-listener.md)。

如果您必須確保目標解密的是 HTTPS 流量 (而不是負載平衡器)，則可以建立在連接埠 443 上具有 TCP 接聽程式的 Network Load Balancer。使用 TCP 接聽程式時，負載平衡器會將加密的流量傳遞給目標，而不需要對流量進行解密。如需詳細資訊，請參閱《[Network Load Balancer 使用者指南](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/)》。

**WebSockets**  
Application Load Balancer 提供對 WebSocket 的原生支援。您可以使用 HTTP 連線，升級現有的與 WebSocket (`ws` 或 `wss`) 的 HTTP/1.1 連線。升級時，用於請求 (對象是負載平衡器以及目標) 的 TCP 連線會透過負載平衡器變成用戶端與目標之間的持續性 WebSocket 連線。您可以透過 HTTP 和 HTTPS 接聽程式來使用 WebSocket。您為接聽程式選擇的選項會套用到 WebSocket 連線和 HTTP 流量。路由至已啟用目標最佳化工具之目標群組的請求不支援 Websocket。如需詳細資訊，請參閱《Amazon CloudFront 開發人員指南》**中的 [WebSocket 通訊協定的運作方式](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-working-with.websockets.html#distribution-working-with.websockets.how-it-works)。

**HTTP/2**  
Application Load Balancer 對使用 HTTPS 接聽程式的 HTTP/2 提供原生支援。您可以使用 HTTP/2 連線平行傳送高達 128 個請求。您可以使用通訊協定版本，使用 HTTP/2 將請求傳送至目標。如需詳細資訊，請參閱[通訊協定版本](load-balancer-target-groups.md#target-group-protocol-version)。由於 HTTP/2 可更有效率地使用前端連線，您可能會注意到用戶端和負載平衡器之間的連線數較少。您無法使用 HTTP/2 的伺服器推送功能。

Application Load Balancer 的相互 TLS 身分驗證在傳遞和驗證模式下都支援 HTTP/2。如需詳細資訊，請參閱[在 Application Load Balancer 中使用 TLS 進行相互身分驗證](mutual-authentication.md)。

如需詳細資訊，請參閱 *Elastic Load Balancing User Guide* 中的 [Request routing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html#request-routing)。

## 接聽程式屬性
<a name="listener-attributes"></a>

以下是 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**、**內嵌**或**物件**中的頁面。

## 預設動作
<a name="default-action"></a>

每個接聽程式都有預設動作，也稱為預設規則。無法刪除預設規則，且一律最後執行。您可以建立其他規則。這些規則包含優先順序、一或多個動作，以及一或多個條件。您可以隨時新增或編輯規則。如需詳細資訊，請參閱[接聽程式規則](listener-rules.md)。