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

Application Load Balancer 的侦听器规则

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

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

注意

控制台会显示每个规则的相对序列号,而不是规则优先级。您可以使用 AWS CLI 或 Elastic Load Balancing API 对规则进行描述,以获得规则优先级。

要求

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

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

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

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

添加规则

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

使用控制台添加规则

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格上的 LOAD BALANCING 下,选择 Load Balancers

  3. 选择负载均衡器,然后选择 Listeners

  4. 对于要更新的侦听器,选择 View/edit rules

  5. 选择菜单栏中的 Add rules 图标 (加号) 以在您可按优先级顺序插入规则的位置添加 Insert Rule 图标。

    
                            菜单栏上的“Add rules (添加规则)”图标。
  6. 选择上一步中添加的 Insert Rule (插入规则) 图标之一。

  7. 添加一个或多个条件,如下所述:

    1. 要添加主机标头条件,请依次选择 Add condition (添加条件)Host header (主机标头),然后键入主机名(例如,*.example.com)。要保存此条件,请选择选中标记图标。

      每个字符串的最大大小为 128 个字符。比较不区分大小写。支持以下通配符:* 和 ?。

    2. 要添加路径条件,请依次选择 Add condition (添加条件)Path (路径),然后键入路径模式(例如,/img/*)。要保存此条件,请选择选中标记图标。

      每个字符串的最大大小为 128 个字符。比较区分大小写。支持以下通配符:* 和 ?。

    3. 要添加 HTTP 标头条件,请依次选择 Add condition (添加条件)Http header (Http 标头)。键入标头名称并添加一个或多个比较字符串。要保存此条件,请选择选中标记图标。

      每个标头名称的最大大小为 40 个字符,标头名称不区分大小写,并且不支持通配符。每个比较字符串的最大大小为 128 个字符,支持以下通配符:* 和 ?。比较不区分大小写。

    4. 要添加 HTTP 请求方法条件,请依次选择 Add condition (添加条件)Http request method (Http 请求方法),然后添加一个或多个方法名称。要保存此条件,请选择选中标记图标。

      每个名称的最大大小为 40 个字符。允许的字符为 A-Z、连字符 (-) 和下划线 (_)。比较区分大小写。不支持通配符。

    5. 要添加查询字符串条件,请依次选择 Add condition (添加条件)Query string (查询字符串),然后添加一个或多个键/值对。对于每个键/值对,您可以省略键并仅指定值。要保存此条件,请选择选中标记图标。

      每个字符串的最大大小为 128 个字符。比较不区分大小写。支持以下通配符:* 和 ?。

    6. 要添加源 IP 条件,请依次选择 Add condition (添加条件)Source IP (源 IP),然后添加一个或多个 CIDR 块。要保存此条件,请选择选中标记图标。

      可以使用 IPv4 和 IPv6 地址。不支持通配符。

  8. (可选,HTTPS 侦听器)要验证用户的身份,请选择 Add action (添加操作)Authenticate (身份验证) 并提供请求的信息。要保存操作,请选择选中标记图标。有关更多信息,请参阅 使用应用程序负载均衡器验证用户身份

  9. 添加下列操作之一:

    • 要添加转发操作,请选择 Add action (添加操作)Forward to (转发至) 并选择目标组。要保存操作,请选择选中标记图标。

    • 要添加重定向操作,请选择 Add action (添加操作)Redirect to (重定向至) 并为重定向提供 URL。要保存操作,请选择选中标记图标。有关更多信息,请参阅重定向操作

    • 要添加固定响应操作,请选择 Add action (添加操作)Return fixed response (返回固定响应),然后提供响应代码和可选的响应正文。要保存操作,请选择选中标记图标。有关更多信息,请参阅 固定响应操作

    
                            “Insert Rule (插入规则)”界面。
  10. 选择 Save

  11. (可选)要更改规则的顺序,请使用箭头,然后选择 Save (保存)。默认规则始终具有最低优先级。

  12. 要离开此屏幕,请选择菜单栏中的 Back to the load balancer (返回到负载均衡器) 图标(后退按钮)。

使用 AWS CLI 添加规则

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

编辑规则

您可随时编辑规则的操作和条件。

使用控制台编辑规则

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格上的 LOAD BALANCING 下,选择 Load Balancers

  3. 选择负载均衡器,然后选择 Listeners

  4. 对于要更新的侦听器,选择 View/edit rules

  5. 选择菜单栏中的 Edit rules 图标 (铅笔)。

    
                            菜单栏上的“Edit rules (编辑规则)”图标。
  6. 对于要编辑的规则,选择 Edit rules 图标 (铅笔)。

  7. (可选)按需修改条件和操作。例如,您可以编辑条件或操作(铅笔图标)、添加条件、向 HTTPS 侦听器的规则添加身份验证操作,或者删除条件或操作(垃圾桶图标)。无法向默认规则添加条件。

    
                            “Edit Rule (编辑规则)”界面。
  8. 选择 Update

  9. 要离开此屏幕,请选择菜单栏中的 Back to the load balancer (返回到负载均衡器) 图标(后退按钮)。

使用 AWS CLI 编辑规则

使用 modify-rule 命令。

重新排序规则

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

注意

控制台会显示每个规则的相对序列号,而不是规则优先级。使用控制台以重新排序规则时,规则将根据现有规则优先级,获得新规则优先级。要将规则的优先级设为指定值,请使用 AWS CLI 或 Elastic Load Balancing API。

使用控制台为规则重新排序

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格上的 LOAD BALANCING 下,选择 Load Balancers

  3. 选择负载均衡器,然后选择 Listeners

  4. 对于要更新的侦听器,选择 View/edit rules

  5. 选择菜单栏中的 Reorder rules图标 (箭头)。

    
                            菜单栏上的“Reorder rules (重新排序规则)”图标。
  6. 选中规则旁的复选框,然后使用箭头为规则指定新的优先级。默认规则始终具有最低优先级。

  7. 为规则重新排序之后,选择 Save

  8. 要离开此屏幕,请选择菜单栏中的 Back to the load balancer (返回到负载均衡器) 图标(后退按钮)。

使用 AWS CLI 更新规则优先级

使用 set-rule-priorities 命令。

删除规则

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

使用控制台删除规则

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格上的 LOAD BALANCING 下,选择 Load Balancers

  3. 选择负载均衡器,然后选择 Listeners

  4. 对于要更新的侦听器,选择 View/edit rules

  5. 在菜单栏中选择 Delete rules (删除规则) 图标(减号)。

  6. 选中规则对应的复选框,然后选择 Delete (删除)。无法删除侦听器的默认规则。

  7. 要离开此屏幕,请选择菜单栏中的 Back to the load balancer (返回到负载均衡器) 图标(后退按钮)。

使用 AWS CLI 删除规则

使用 delete-rule 命令。