Elastic Load Balancing
Application Load Balancer
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

应用程序负载均衡器的侦听器

在开始使用应用程序负载均衡器之前,您必须添加一个或多个侦听器。侦听器是一个使用您配置的协议和端口检查连接请求的进程。为侦听器定义的规则可以确定负载均衡器将请求路由到一个或多个目标组中的目标的方式。

侦听器配置

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

  • 协议:HTTP、HTTPS

  • 端口:1-65535

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

Application Load Balancer 为 WebSockets 提供本机支持。您可以对 HTTP 和 HTTPS 侦听器同时使用 WebSocket。

Application Load Balancer 为将 HTTP/2 与 HTTPS 侦听器一起使用提供本机支持。使用一个 HTTP/2 连接最多可以并行发送 128 个请求。负载均衡器将这些请求转换为单独的 HTTP/1.1 请求,并将它们分配给目标组中的正常目标。由于 HTTP/2 可以更高效地使用前端连接,您可能注意到客户端与负载均衡器之间的连接较少。无法使用 HTTP/2 的服务器推送功能。

侦听器规则

每个侦听器都具有默认规则,您也可以选择定义其他规则。每个规则都包含优先级、转发操作、可选身份验证操作(针对 HTTPS 侦听器)、可选主机条件和可选路径条件。

默认规则

创建侦听器时,请为默认规则定义操作。默认规则不能有条件。如果未满足侦听器的任一规则条件,则将执行默认规则的操作。

下面是控制台中所示的默认规则的示例:

 侦听器的默认规则。

规则优先级

每个规则都有一个优先级。规则是按优先级顺序 (从最低值到最高值) 计算的。最后评估默认规则。您可以随时更改非默认规则的优先级。您不能更改默认规则的优先级。有关更多信息,请参阅 重新排序规则

规则操作

每个规则操作都具有执行操作所需的类型、顺序和信息。以下是支持的操作类型:

authenticate-cognito

[HTTPS 侦听器] 使用 Amazon Cognito 验证用户身份。

authenticate-oidc

[HTTPS 侦听器] 使用符合 OpenID Connect (OIDC) 条件的身份提供商验证用户身份。

forward

将请求转发到指定目标组。

先执行顺序值最小的操作。每个规则必须包含一个 forward 操作。forward 操作必须放在最后执行。可以随时编辑规则。有关更多信息,请参阅 编辑规则

规则条件

规则条件有两种类型:主机和路径。每个规则最多可以具有一个主机条件和一个路径条件。当规则的条件满足时,将执行其操作。

主机条件

您可使用主机条件定义一些规则,用于根据主机标头中的主机名将请求转发到不同的目标组 (也称为基于主机的路由)。这使您能够使用单个负载均衡器支持多个域。

每个主机条件有一个主机名。如果主机标头中的主机名与侦听器规则中的主机名完全匹配,则将使用该规则来路由请求。

主机名不区分大小写,长度上限为 128 个字符,并且可包含以下任何字符。可包含多达三个通配符。

  • A-Z、a-z、0-9

  • - .

  • * (匹配 0 个或多个字符)

  • ?(完全匹配 1 个字符)

主机名示例

  • example.com

  • test.example.com

  • *.example.com

规则 *.example.comtest.example.com 匹配,但与 example.com 不匹配。

控制台示例

下面是具有控制台中所示的主机条件的规则的示例。如果主机标头中的主机名与 *.example.com 匹配,则请求将转发到名为 my-web-servers 的目标组。有关更多信息,请参阅 添加规则

 具有主机条件的侦听器规则。

路径条件

您可使用路径条件定义根据请求中的 URL 将请求转发到不同的目标组 (也称为基于路径的路由) 的规则。

每个路径条件都有一个路径模式。如果请求中的 URL 与侦听器规则中的路径模式完全匹配,则将使用该规则来路由请求。

路径模式区分大小写,长度最多为 128 个字符,并且可包含以下任何字符。可包含多达三个通配符。

  • A-Z、a-z、0-9

  • _ - . $ / ~ " ' @ : +

  • & (使用 &)

  • * (匹配 0 个或多个字符)

  • ?(完全匹配 1 个字符)

示例路径模式

  • /img/*

  • /js/*

路径模式用于路由请求,而不是更改请求。例如,如果一个规则具有路径模式 /img/*,此规则会将 /img/picture.jpg 的请求作为 /img/picture.jpg 的请求转发给指定目标组。

控制台示例

下面是具有控制台中所示的路径条件的规则的示例。如果请求中的 URL 与 /img/* 匹配,则会将请求转发到名为 my-targets 的目标组。有关更多信息,请参阅 添加规则

 具有路径条件的侦听器规则。