Application Load Balancer 的侦听器规则 - Elastic Load Balancing

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

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. 选择下一步

  7. 选择 添加条件

  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者IPv6CIDRs都允许。不支持通配符。

    • HTTPh eader — 输入标题的名称并添加一个或多个比较字符串。选择确认以保存条件。

      • 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. 选择下一步

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

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

    • 重定向到 URL-指定URL客户端请求将重定向到的。这可以通过在URI零件选项卡上分别输入每个部分,或者在完整选项卡上输入完整地址来完成。URL对于状态码,您可以根据需要将重定向配置为临时 (HTTP302) 或永久 (HTTP301)。

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

  11. 选择下一步

  12. 通过输入 1 至 50000 之间的值来指定规则的优先级

  13. 选择下一步

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

要添加规则,请使用 AWS CLI

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

编辑规则

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

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

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

  3. 选择负载均衡器。

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

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

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

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

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

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

  5. 根据需要修改名称和标签。要添加其他标签,请选择添加其他标签文本。

  6. 选择 下一步

  7. 根据需要修改条件。您可以添加条件、编辑现有条件或删除条件。

  8. 选择 下一步

  9. 根据需要修改操作。

  10. 选择 下一步

  11. 根据需要修改规则优先级。您可以输入 1 至 50000 之间的值。

  12. 选择 下一步

  13. 检查为您的规则配置的所有详细信息和更新的设置。确定选择无误之后,选择保存更改

要使用编辑规则 AWS CLI

使用 modify-rule 命令。

更新规则优先级

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

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

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

  3. 选择负载均衡器。

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

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

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

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

    2. 选择侦听器。

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

  5. 侦听器规则部分中,优先级列显示当前规则的优先级。您可以通过输入 1 至 50000 之间的值来更新规则优先级。

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

要更新规则优先级,请使用 AWS 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,然后选择删除

要删除规则,请使用 AWS CLI

使用 delete-rule 命令。