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

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

Application Load Balancer 的侦听器规则

为侦听器定义的规则可确定负载均衡器如何将请求路由到一个或多个目标组中的目标。

每条规则由优先级、一个或多个操作以及一个或多个条件组成。有关更多信息,请参阅 侦听器规则

要求

  • 规则只能附加到安全的侦听器。

  • 每条规则必须包含以下操作之一:forwardredirectfixed-response,并且其必须为要执行的最后一个操作。

  • 每条规则可以包括以下条件中的零个或一个:host-headerhttp-request-methodpath-patternsource-ip,以及以下条件中的零个或多个:http-headerquery-string

  • 每个条件最多可以指定三个比较字符串,每条规则最多可以指定五个比较字符串。

  • forward 操作会将请求路由至其目标组。在添加 forward 操作之前,请创建目标组并向其添加目标。有关更多信息,请参阅 创建目标组

添加规则

您可在创建侦听器时定义默认规则,并可随时定义其他非默认规则。

使用控制台添加规则
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择负载均衡器

  3. 选择负载均衡器以查看其详细信息。

  4. 侦听器和规则选项卡上,执行以下任一操作:

    1. 选择协议:端口列中的文本以打开侦听器的详细信息页面。

      规则选项卡上,选择添加规则

    2. 选择要向其添加规则的侦听器。

      选择管理规则,然后选择添加规则

  5. 可以在名称和标签下为规则指定一个名称,但此名称不是必需的。

    要添加其他标签,请选择添加其他标签文本。

  6. 请选择 Next(下一步)

  7. 选择 Add condition (添加条件)

  8. 添加一个或多个如下条件:

    • 主机标头 – 定义主机标头。例如:*.example.com。选择确认以保存条件。

      最多 128 个字符。不区分大小写。允许的字符是 a-z、A-Z、0-9;以下特殊字符:-_.;以及通配符(* 和 ?)。

    • 路径 – 定义路径。例如:/item/* 。选择确认以保存条件。

      最多 128 个字符。区分大小写。允许的字符是 a-z、A-Z、0-9;以下特殊字符:_-.$/~"'@:+;&;以及通配符(* 和 ?)。

    • HTTP 请求方法 – 定义 HTTP 请求方法。选择确认以保存条件。

      最多 40 个字符。区分大小写。允许的字符为 A-Z,以及以下特殊字符:-_。不支持通配符。

    • 源 IP – 以 CIDR 格式定义源 IP 地址。选择确认以保存条件。

      同时允许 IPv4 和 IPv6 CIDR。不支持通配符。

    • HTTP 标头 – 输入标头名称并添加一个或多个比较字符串。选择确认以保存条件。

      • HTTP 标头名称– 规则将评估包含此标头的请求以确认匹配值。

        最多 40 个字符。不区分大小写。允许的字符是 a-z、A-Z、0-9 和以下特殊字符:*?-!#$%&'+.^_`|~。不支持通配符。

      • HTTP 标头值 – 输入要与 HTTP 标头值进行比较的字符串。

        最多 128 个字符。不区分大小写。允许的字符是 a-z、A-Z、0-9;空格;以下特殊字符:!"#$%&'()+,./:;⩽=>@[]^_`{|}~-;以及通配符(* 和 ?)。

    • 查询字符串 – 基于查询字符串中的键:值对或值路由请求。选择确认以保存条件。

      最多 128 个字符。不区分大小写。允许的字符为 a-z、A-Z、0-9;以下特殊字符:_-.$/~"'@:+&()!,;=;以及通配符(* 和 ?)。

  9. 请选择 Next(下一步)

  10. 为您的规则定义以下操作之一:

    • 转发给目标组 – 选择一个或多个要将流量转发到其中的目标组。要添加目标组,请选择添加目标组。如果使用多个目标组,请为每个目标组选择权重并查看相关联的百分比。如果已对一个或多个目标组启用粘性,则必须在规则上启用组级粘性。

    • 重定向到 URL – 指定客户端请求将重定向到的 URL。可以通过如下方式完成此操作:在 URI 部分选项卡上分别输入每个部分,或者在完整 URL 选项卡上输入完整的地址。对于状态代码,您可以将重定向配置为临时(HTTP 302)或永久(HTTP 301)。

    • 返回固定响应 – 指定将返回到已删除客户端请求的响应代码。此外,您以指定内容类型响应正文,但它们不是必需的。

  11. 请选择 Next(下一步)

  12. 规则部分中,在 1-50000 之间指定规则的优先级。建议在侦听器规则优先级数字之间留出空白。查看侦听器规则部分,获取现有规则和当前所创建规则的实时摘要。

  13. 请选择 Next(下一步)

  14. 查看当前为新规则配置的所有详细信息和设置。对设置满意后,选择创建

使用 Amazon CLI 添加规则

使用 create-rule 命令创建规则。使用 describe-rules 命令查看规则的相关信息。

编辑规则

您可随时编辑规则的操作和条件。规则更新不会立即生效,因此在更新规则后的一小段短时间内,可以使用之前的规则配置来路由请求。任何正在进行的请求均会完成。

使用控制台编辑规则
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择负载均衡器

  3. 选择负载均衡器。

  4. 侦听器和规则选项卡上,执行以下任一操作:

    1. 选择协议:端口列中的文本以打开侦听器的详细信息页面。

      1. 规则选项卡的侦听器规则部分中,选择要编辑规则的名称标签列中的文本。

        选择操作,然后选择编辑规则

      2. 规则选项卡的侦听器规则部分中,选择要编辑的规则。

        选择操作,然后选择编辑规则

    2. 选择要编辑其规则的侦听器。

      选择管理规则,然后选择编辑规则

  5. 按需修改条件和操作。可以编辑条件或操作、添加条件或删除条件或操作。

  6. 选择 Save changes(保存更改)

使用 Amazon CLI 编辑规则

使用 modify-rule 命令。

更新规则优先级

规则是按优先级顺序 (从最低值到最高值) 计算的。最后评估默认规则。您可以随时更改非默认规则的优先级。您不能更改默认规则的优先级。

使用控制台更新规则优先级
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择负载均衡器

  3. 选择负载均衡器。

  4. 侦听器和规则选项卡上,执行以下任一操作:

    1. 选择协议:端口规则列中的文本以打开侦听器的详细信息页面。

      1. 选择操作,然后选择重新确定规则的优先级

      2. 规则选项卡的侦听器规则部分中,选择操作,然后选择重新确定规则的优先级

    2. 选择侦听器。

      1. 选择管理规则,然后选择重新确定规则的优先级

  5. 侦听器规则部分中,优先级列显示当前规则的优先级。选择规则优先级值以打开一个编辑字段,您可以在其中调整该值。

  6. 对更改感到满意后,选择保存更改

使用 Amazon CLI 更新规则优先级

使用 set-rule-priorities 命令。

删除规则

您可以随时删除侦听器的非默认规则。您不能删除侦听器的默认规则。当您删除侦听器时,也会删除它的所有规则。

使用控制台删除规则
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择负载均衡器

  3. 选择负载均衡器。

  4. 侦听器和规则选项卡上,执行以下任一操作:

    1. 选择协议:端口规则列中的文本以打开侦听器的详细信息页面。

      1. 选择要删除的规则。

      2. 选择操作,然后选择删除规则

      3. 在文本字段中输入 confirm,然后选择删除

    2. 选择名称标签列的文本以打开规则的详细信息页面。

      1. 选择操作,然后选择删除规则

      2. 在文本字段中输入 confirm,然后选择删除

要使用 Amazon CLI 删除规则

使用 delete-rule 命令。