Application Load Balancer 的侦听器规则
为侦听器定义的规则可确定负载均衡器如何将请求路由到一个或多个目标组中的目标。
每条规则由优先级、一个或多个操作以及一个或多个条件组成。有关更多信息,请参阅 侦听器规则。
注意
控制台将按优先级顺序显示规则。但是,控制台会显示每个规则的序列号,该序列号可能与 Amazon CLI 或 Elastic Load Balancing API 显示的规则优先级不同。
要求
-
每条规则必须包含以下操作之一:
forward
、redirect
或fixed-response
,并且其必须为要执行的最后一个操作。 -
每条规则可以包括以下条件中的零个或一个:
host-header
、http-request-method
、path-pattern
和source-ip
,以及以下条件中的零个或多个:http-header
和query-string
。 -
每个条件最多可以指定三个比较字符串,每条规则最多可以指定五个比较字符串。
-
forward
操作会将请求路由至其目标组。在添加forward
操作之前,请创建目标组并向其添加目标。有关更多信息,请参阅 创建目标组。
添加规则
您可在创建侦听器时定义默认规则,并可随时定义其他非默认规则。
使用控制台添加规则
-
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择负载均衡器。
-
选择负载均衡器。
-
在侦听器选项卡上,选择协议:端口列中的文本以打开侦听器的详细信息页面。
-
在规则选项卡上,选择管理规则。
-
选择菜单栏中的 Add rules 图标 (加号) 以在您可按优先级顺序插入规则的位置添加 Insert Rule 图标。
-
选择上一步中添加的 Insert Rule (插入规则) 图标之一。
-
添加一个或多个条件,如下所述:
-
要添加主机标头条件,请依次选择添加条件、主机标头,然后输入主机名(例如,
*.example.com
)。要保存此条件,请选择选中标记图标。每个字符串的最大大小为 128 个字符。比较不区分大小写。支持以下通配符:* 和 ?。
-
要添加路径条件,请依次选择添加条件、路径,然后输入路径模式(例如,
/img/*
)。要保存此条件,请选择选中标记图标。每个字符串的最大大小为 128 个字符。比较区分大小写。支持以下通配符:* 和 ?。
-
要添加 HTTP 标头条件,请依次选择 Add condition (添加条件)、Http header (Http 标头)。输入标头名称并添加一个或多个比较字符串。要保存此条件,请选择选中标记图标。
每个标头名称的最大大小为 40 个字符,标头名称不区分大小写,并且不支持通配符。每个比较字符串的最大大小为 128 个字符,支持以下通配符:* 和 ?。比较不区分大小写。
-
要添加 HTTP 请求方法条件,请依次选择 Add condition (添加条件)、Http request method (Http 请求方法),然后添加一个或多个方法名称。要保存此条件,请选择选中标记图标。
每个名称的最大大小为 40 个字符。允许的字符为 A-Z、连字符 (-) 和下划线 (_)。比较区分大小写。不支持通配符。
-
要添加查询字符串条件,请依次选择 Add condition (添加条件)、Query string (查询字符串),然后添加一个或多个键/值对。对于每个键/值对,您可以省略键并仅指定值。要保存此条件,请选择选中标记图标。
每个字符串的最大大小为 128 个字符。比较不区分大小写。支持以下通配符:* 和 ?。
-
要添加源 IP 条件,请依次选择 Add condition (添加条件)、Source IP (源 IP),然后添加一个或多个 CIDR 块。要保存此条件,请选择选中标记图标。
可以使用 IPv4 和 IPv6 地址。不支持通配符。
-
-
(可选,HTTPS 侦听器)要验证用户的身份,请选择 Add action (添加操作)、Authenticate (身份验证) 并提供请求的信息。要保存操作,请选择选中标记图标。有关更多信息,请参阅 使用 Application Load Balancer 验证用户身份。
-
添加下列操作之一:
-
要添加转发操作,请选择 Add action (添加操作)、Forward to (转发至) 并选择一个或多个目标组。如果您使用多个目标组,请为每个目标组选择一个权重,并且(可选)启用目标组粘性。如果启用目标组粘性并且有多个目标组,则还必须在目标组上启用粘性会话。要保存操作,请选择选中标记图标。有关更多信息,请参阅 转发操作。
-
要添加重定向操作,请选择 Add action (添加操作)、Redirect to (重定向至) 并为重定向提供 URL。要保存操作,请选择选中标记图标。有关更多信息,请参阅 重定向操作。
-
要添加固定响应操作,请选择 Add action (添加操作)、Return fixed response (返回固定响应),然后提供响应代码和可选的响应正文。要保存操作,请选择选中标记图标。有关更多信息,请参阅 固定响应操作。
-
-
选择 Save。
-
(可选)要更改规则的顺序,请使用箭头,然后选择 Save (保存)。默认规则始终具有最低优先级。
-
要离开此屏幕,请选择菜单栏中的返回到负载均衡器图标(后退按钮)。
使用 Amazon CLI 添加规则
使用 create-rule 命令创建规则。使用 describe-rules 命令查看规则的相关信息。
编辑规则
您可随时编辑规则的操作和条件。规则更新不会立即生效,因此在更新规则后的一小段短时间内,可以使用之前的规则配置来路由请求。任何正在进行的请求均会完成。
使用控制台编辑规则
-
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择负载均衡器。
-
选择负载均衡器。
-
在侦听器选项卡上,选择协议:端口列中的文本以打开侦听器的详细信息页面。
-
在规则选项卡上,选择管理规则。
-
选择菜单栏中的 Edit rules 图标 (铅笔)。
-
对于要编辑的规则,选择编辑规则图标(铅笔)。
-
(可选)按需修改条件和操作。例如,您可以编辑条件或操作(铅笔图标)、添加条件、向 HTTPS 侦听器的规则添加身份验证操作,或者删除条件或操作(垃圾桶图标)。无法向默认规则添加条件。
-
选择 Update。
-
要离开此屏幕,请选择菜单栏中的返回到负载均衡器图标(后退按钮)。
使用 Amazon CLI 编辑规则
使用 modify-rule 命令。
重新排序规则
规则是按优先级顺序 (从最低值到最高值) 计算的。最后评估默认规则。您可以随时更改非默认规则的优先级。您不能更改默认规则的优先级。
注意
控制台会显示每个规则的相对序列号,而不是规则优先级。使用控制台以重新排序规则时,规则将根据现有规则优先级,获得新规则优先级。要将规则的优先级设置为特定值,请使用 Amazon CLI 或 Elastic Load Balancing API。
使用控制台为规则重新排序
-
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择负载均衡器。
-
选择负载均衡器。
-
在侦听器选项卡上,选择协议:端口列中的文本以打开侦听器的详细信息页面。
-
在规则选项卡上,选择管理规则。
-
选择菜单栏中的 Reorder rules图标 (箭头)。
-
选中规则旁的复选框,然后使用箭头为规则指定新的优先级。默认规则始终具有最低优先级。
-
为规则重新排序之后,选择 Save。
-
要离开此屏幕,请选择菜单栏中的返回到负载均衡器图标(后退按钮)。
使用 Amazon CLI 更新规则优先级
使用 set-rule-priorities 命令。
删除规则
您可以随时删除侦听器的非默认规则。您不能删除侦听器的默认规则。当您删除侦听器时,也会删除它的所有规则。
使用控制台删除规则
-
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择负载均衡器。
-
选择负载均衡器。
-
在侦听器选项卡上,选择协议:端口列中的文本以打开侦听器的详细信息页面。
-
在规则选项卡上,选择管理规则。
-
在菜单栏中选择 Delete rules (删除规则) 图标(减号)。
-
选中规则对应的复选框,然后选择 Delete (删除)。无法删除侦听器的默认规则。
-
要离开此屏幕,请选择菜单栏中的返回到负载均衡器图标(后退按钮)。
要使用 Amazon CLI 删除规则
使用 delete-rule 命令。