转发规则(Rule)用于定义应用型负载均衡(ALB)监听器如何处理客户端请求。
创建监听器后,系统会自动为该监听器创建一条默认转发规则。您也可以在监听器下自定义添加多条转发规则,将不同特征的客户端请求按指定条件路由到不同的后端目标组,实现基于内容的精细化流量分发。
本文介绍如何创建、编辑、删除转发规则,以及如何调整规则优先级。
转发规则说明
每条转发规则由转发条件和转发动作两部分组成:转发条件用于匹配客户端请求,转发动作定义匹配成功后对请求执行的处理。
默认转发规则
创建监听器后,系统会自动为该监听器创建一条默认转发规则。该转发规则的转发动作为将请求转发至创建监听器时配置的目标组。
默认转发规则不支持删除,但支持修改其转发动作(如更换目标组)。
默认转发规则的优先级最低,且不支持调整优先级。
当客户端请求未匹配到任何自定义转发规则时,将按默认转发规则进行转发。
匹配原理
客户端请求会按照转发规则的优先级顺序逐条匹配,优先级数值越小,优先级越高。
请求匹配到某条转发规则时,ALB 立即按该规则执行转发动作,不再继续匹配后续规则;
请求未匹配到任何自定义转发规则时,则按默认转发规则转发。
说明:
ALB 严格按照优先级数值从小到大依次匹配转发规则,不会自动按域名或路径的精确程度排序。如需让更精确的规则优先匹配,请手动将其优先级数值调小(即排在更靠前的位置)。
前提条件
已创建应用型负载均衡 ALB 实例。如未创建,请参见 创建 ALB 实例。
已为 ALB 实例创建 HTTP 或 HTTPS 监听器。如未创建,请参见 创建和管理监听器。
已创建目标组,并向目标组中添加了后端服务。如未创建,请参见 创建和管理目标组。转发动作需要将请求转发到目标组,因此请先准备好目标组。
创建转发规则
1. 登录 应用型负载均衡控制台,在左侧导航栏选择应用型负载均衡 ALB > 实例管理。
2. 在实例列表上方选择地域,单击目标实例的 ID/名称进入实例详情页。
3. 选择监听器管理页签,找到目标监听器,单击进入监听器详情页
4. 选择转发规则页签,单击创建转发规则。或在操作列单击配置转发规则。
5. 在创建转发规则页面,根据下表配置规则信息,配置完成后单击确定。
配置项 | 说明 |
规则名称 | 转发规则的名称,最多 255 个字符,支持数字、字母、中文、-、_、. 等字符。留空时系统将自动生成名称。 |
转发条件 | 设置请求的匹配条件,所有条件满足时,流量方可转发。 在下拉框中选择条件类型并填写对应的值。单击 + 增加条件 可添加多个条件。 说明: 最多支持10个转发条件。 |
转发动作 | 设置匹配成功后对请求执行的动作,满足任一动作时,流量即被转发。 在下拉框中选择动作类型并完成配置。单击 + 增加动作 可添加多个动作。 说明: 最多支持5个转发动作。 |
优先级 | 转发规则在监听器内生效的顺序。取值范围为 1 - 10000,数值越小优先级越高。 同一监听器内优先级不能重复。 单击查看已有监听规则可展开当前监听器下已存在规则的优先级与规则 ID,便于合理规划,避免冲突。 |
转发条件
一条转发规则中可以配置一个或多个转发条件(最多支持10个),条件之间遵循以下逻辑:
不同类型条件之间为“与(AND)”关系:例如同一规则同时配置了域名条件和路径条件,则请求必须同时满足域名和路径两个条件才会匹配该规则。
同一类型条件的多个值之间为“或(OR)”关系:例如域名条件添加了多个域名值,则请求域名匹配其中任意一个即满足该域名条件。
转发条件支持以下 7 种类型:
条件类型 | 说明 |
域名 | 根据客户端请求的域名进行匹配。 支持精准匹配及通配符、正则匹配(不区分大小写)。 支持 3-128 个字符。 支持 a-z、0-9、-、_、. 、,等字符。 |
路径 | 根据客户端请求的 URL 路径进行匹配。 支持精准匹配及通配符、正则匹配(不区分大小写)、正则匹配(区分大小写)。 支持最多 128 个字符,精确匹配以/开头。 |
HTTP 标头 | 根据请求 HTTP 头字段的键值进行匹配。 在键字段输入标头名称、值字段输入标头内容,可添加一条或多条标头键值对。 键支持 1-40个字符,支持字母、数字和下划线,不支持 Host/Cookie。 值支持最多 128 个字符,不支持双引号,首尾不能是空格。 |
查询字符串 | 根据请求 URL 中的查询字符串(Query String)键值对进行匹配,可添加一个或多个键值对。 键支持 1-16 个字符,不支持大写字母、空格和#、[]、{}、\\。 值支持最多 128 个字符,不支持空格、#、[]、{}、\\、|、<>、&。 |
HTTP 请求方法 | 根据请求的 HTTP 方法进行匹配,支持 HEAD、GET、POST、OPTIONS、PUT、PATCH、DELETE。 |
Cookie | 根据请求携带的 Cookie 键值对进行匹配,可添加一个或多个键值对。 键支持 1-64个字符,支持小写字母、数字、下划线和短划线。 值支持最多 128 个字符,不支持大写字母、控制字符、分号、逗号、空格、引号、反斜杠。 |
SourceIp | 根据客户端来源 IP 地址或 IP 地址段进行匹配,可添加一个或多个 IP/IP 段。 支持 IPv4 CIDR 格式。 仅支持 /24 和 /32。 不支持0.0.0.0/x。 |
转发动作
转发条件满足时,按配置的一个或多个转发动作执行。转发动作支持以下 6 种类型:
动作类型 | 说明 |
转发至 | 将匹配的请求转发到指定的后端目标组。可选择一个或多个目标组,并通过设置各目标组的权重控制流量分发比例。 |
重定向至 | 将请求重定向到指定的协议、域名、端口、路径、查询、状态码。 |
返回固定响应 | 由 ALB 直接向客户端返回固定的响应状态码和响应正文,不再转发到后端。 响应状态码,取值范围: 200 - 299,400 - 599。 响应正文类型,支持 text/plain、text/css、text/html、application/javascript、application/json。仅支持 ASCII 字符,最大 1KB。 |
重写 | 在 ALB 内部将请求的域名、路径等修改为指定值后再转发至后端,客户端浏览器地址栏 URL 不变。 |
写入 Header | 在请求中写入指定的 HTTP 头字段(键值对)。 键支持 1 - 40个字符,支持字母、数字、下划线和短划线。 值支持用户指定、引用、系统定义,最多 128 个字符,不支持双引号,首尾不能为空格。 |
删除 Header | 删除请求中指定名称的 HTTP 头字段。支持 1 - 40 个字符,支持字母、数字、下划线和短划线。 |
编辑转发规则
1. 进入目标监听器详情页,选择转发规则页签。
2. 找到目标转发规则,在操作列单击编辑。
3. 在编辑页面修改转发条件、转发动作或优先级等信息,修改完成后单击确定,完成编辑。
注意:
编辑转发规则可能影响现有业务流量的转发路径,建议在业务低峰期进行操作,并在变更前充分评估和测试。
默认转发规则仅支持修改转发动作(如更换目标组),不支持修改转发条件和优先级。
删除转发规则
1. 进入目标监听器详情页,选择转发规则页签。
2. 勾选要删除的一条或多条转发规则,单击列表上方的删除。
3. 在弹出的确认对话框中确认无误后,单击确定完成删除。
注意:
删除转发规则后,原本匹配该规则的请求将按其余规则或默认规则重新匹配转发,请确认不会影响线上业务后再操作。
默认转发规则不支持删除。