Application Load Balancer 的侦听器 - Elastic Load Balancing
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Application Load Balancer 的侦听器

侦听器是一个使用您配置的协议和端口检查连接请求的进程。在开始使用 Application Load Balancer 之前,必须添加至少一个侦听器。如果您的负载均衡器没有侦听器,则无法接收来自客户端的流量。您为侦听器定义的规则决定了负载均衡器如何将请求路由到您注册的目标(例如 EC2 实例)。

侦听器配置

侦听器支持以下协议和端口:

  • 协议:HTTP、HTTPS

  • 端口:1-65535

可以使用 HTTPS 侦听器将加密和解密的工作交给负载均衡器完成,以便应用程序可以专注于其业务逻辑。如果侦听器协议为 HTTPS,您必须在侦听器上部署至少一个 SSL 服务器证书。有关更多信息,请参阅 为您的 Application Load Balancer 创建 HTTPS 侦听器

如果必须确保目标解密 HTTPS 流量而不是负载均衡器,则可以在端口 443 上使用 TCP 侦听器创建网络负载均衡器。通过 TCP 侦听器,负载均衡器将加密流量传递到目标,而不会对其进行解密。有关 Network Load Balancer 的更多信息,请参阅 Network Load Balancers 用户指南

WebSockets

应用程序负载均衡器为提供原生支持。 WebSockets您可以使用 HTTP 连接升级将现有的 HTTP/1.1 连接升级为 WebSocket (wswss)连接。升级时,用于请求的 TCP 连接(到负载均衡器和到目标)会通过负载均衡器成为客户端与目标之间的永久 WebSocket 连接。您可以同时使用 WebSockets HTTP 和 HTTPS 侦听器。您为监听器选择的选项适用于 WebSocket 连接以及 HTTP 流量。有关更多信息,请参阅《Amazon CloudFront 开发者指南》中的 WebSocket 协议工作原理

HTTP/2

Application Load Balancer 为将 HTTP/2 与 HTTPS 侦听器一起使用提供本机支持。使用一个 HTTP/2 连接最多可以并行发送 128 个请求。您可以通过协议版本使用 HTTP/2 将请求发送到目标。有关更多信息,请参阅 协议版本。由于 HTTP/2 可以更高效地使用前端连接,您可能注意到客户端与负载均衡器之间的连接较少。无法使用 HTTP/2 的服务器推送功能。

应用程序负载均衡器的双向 TLS 身份验证在直通和验证模式下都支持 HTTP/2。有关更多信息,请参阅 在应用程序负载均衡器中使用 TLS 进行双向身份验证

有关更多信息,请参阅 Elastic Load Balancing 用户指南中的请求路由

侦听器属性

以下是应用程序负载均衡器的侦听器属性:

routing.http.request.x_amzn_mtls_clientcert_serial_number.header_name

允许您修改 X-Amzn-Mtls-Clientcert-Serial-Numb er HTTP 请求标头的标头名称。

routing.http.request.x_amzn_mtls_clientcert_issuer.header_name

允许您修改 X-Amzn-Mtls-Clientcert-Is suer HTTP 请求标头的标头名称。

routing.http.request.x_amzn_mtls_clientcert_subject.header_name

允许您修改 X-Amzn-Mtls-Clientcert-S ubject-Subject HTTP 请求标头的标头名称。

routing.http.request.x_amzn_mtls_clientcert_validity.header_name

允许您修改 X-Amzn-Mtls-Clientcert-V alidity HTTP 请求标头的标头名称。

routing.http.request.x_amzn_mtls_clientcert_leaf.header_name

允许你修改 X-Amzn-Mtls-Clientcert-Leaf HTT P 请求标头的标头名称。

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 HTT P 请求标头的标头名称。

routing.http.request.x_amzn_tls_cipher_suite.header_name

允许您修改 X-Amzn-Tls-Cipher-Suite HTT P 请求标头的标头名称。

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

表示是否应遵循内容类型标头中通告的 MIME 类型,而不应更改。

routing.http.response.x_frame_options.header_value

表示是否允许浏览器在框架iframe嵌入或对象中呈现页面。

默认动作

每个侦听器都有默认操作,也称为默认规则。默认规则无法删除,并且始终在最后执行。您可以创建其他规则。这些规则由优先级、一个或多个操作以及一个或多个条件组成。您可以随时添加或编辑规则。有关更多信息,请参阅 侦听器规则