

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

# Application Load Balancer 的侦听器规则
<a name="listener-rules"></a>

应用程序负载均衡器的侦听器规则决定了其将请求路由到目标的方式。侦听器收到请求时，将按各规则的优先级顺序（从编号最小的规则开始）评估请求。每条规则都包括要满足的条件以及满足规则条件时要执行的操作。这种灵活的路由机制让您可以实现复杂的流量分配模式，在单个负载均衡器后支持多个应用程序或微服务，以及根据应用程序的特定要求自定义请求处理。

**规则基础知识**
+ 每条规则都由以下部分组成：优先级、操作、条件和可选的转换。
+ 每个规则操作都包含类型以及执行该操作所需的信息。
+ 每个规则条件都包含类型以及评估该条件所需的信息。
+ 每个规则转换都包含一个要匹配的正则表达式和一个替换字符串。
+ 规则条件和规则转换中使用的正则表达式不支持以下功能：lookheads、lookbehind、反向引用、原子组、所有格量词、子例程、递归和 Unicode 字符类（例如）。`\p{L}`
+ 创建侦听器时，请为默认规则定义操作。默认规则不能有条件或转换。如果未满足任何其他规则的任何条件，则将执行默认规则的操作。
+ 规则是按优先级顺序 (从最低值到最高值) 计算的。最后评估默认规则。不能更改默认规则的优先级。
+ 每条规则必须包含以下操作之一：`forward`、`redirect` 或 `fixed-response`，并且其必须为要执行的最后一个操作。
+ 除默认规则以外的每条规则可以选择包含以下条件之一：`host-header`、`http-request-method`、`path-pattern` 和 `source-ip`。此外还可以选择包含以下两个条件之一或全部：`http-header` 和 `query-string`。
+ 除默认规则以外的每条规则都可以选择包含一个主机标头重写转换和一个 URL 重写转换。
+ 每个条件最多可以指定三个比较字符串，每条规则最多可以指定五个比较字符串。

**Topics**
+ [操作类型](rule-action-types.md)
+ [条件类型](rule-condition-types.md)
+ [转换](rule-transforms.md)
+ [添加规则](add-rule.md)
+ [编辑规则](edit-rule.md)
+ [删除规则](delete-rule.md)