- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
-
API参考
- 使用前必读
- API概览
- API版本选择建议
- 如何调用API
- API(V3)
- API(V2)
- API(OpenStack API)
- 应用示例
- 权限和授权项
- 历史API
- 附录
- SDK参考
- 常见问题
- 视频帮助
- 产品术语
-
更多文档
- 用户指南(阿布扎比区域)
- API参考(阿布扎比区域)
-
用户指南 (巴黎区域)
- 产品介绍
- 快速入门
- 负载均衡器
- 监听器
- HTTP/HTTPS监听器高级配置
- 后端服务器组
- 后端服务器(独享型)
- 后端服务器(共享型)
- 证书管理
- 访问控制管理
- TLS安全策略
- 标签管理
- 访问日志
- 监控
- 审计
- 权限管理
- 关于配额
-
常见问题
- 高频常见问题
- 为什么通过负载均衡无法访问后端业务?
- 如何检查弹性负载均衡服务不通或异常中断?
- 如何排查ELB的异常返回码?
- 弹性负载均衡器是否可以单独使用?
- ELB是否支持TCP长连接?
- 弹性负载均衡是否支持后端FTP服务?
- 弹性负载均衡分配的EIP是否为独占?
- 单个用户默认可以创建多少个负载均衡器或监听器?
- ELB权限和使用范围是什么?
- 当负载均衡器正在运行中是否可以调整后端服务器的数量?
- 弹性负载均衡是否可以添加不同操作系统的服务器?
- ELB添加后端的端口号是否可以不一致?
- ELB支持跨用户、跨VPC使用么?
- 负载均衡器的后端服务器可以反过来访问公网/私网负载均衡器上的端口吗?
- ELB能否实现前端是HTTPS协议,后端也是HTTPS协议?
- ELB所属的VPC和子网支持修改吗?
- 是否支持在业务不中断的前提下,将共享型负载均衡升级为独享型负载均衡?
- ELB对于IPv6网络的支持情况是怎样的?
- 如何检查弹性负载均衡前后端流量不一致?
- 如何检查请求不均衡?
- 如何检查弹性负载均衡业务访问延时大?
- 如何检查压测性能上不去?
- 负载均衡器
- 监听器
-
后端服务器
- 为什么后端服务器上收到的健康检查报文间隔和设置的间隔时间不一致?
- 使用ELB后,后端服务器能否访问公网?
- 为什么100开头的IP在频繁访问后端服务器?
- ELB可以跨区域关联后端服务器么?
- 公网负载均衡的后端服务器要不要绑定EIP?
- 如何检查后端服务器网络状态?
- 如何检查后端服务器网络配置?
- 如何检查后端服务器服务状态?
- 后端服务器什么时候被认为是健康的?
- 如何检查通过EIP访问后端云服务器?
- 为什么云监控服务统计的ELB活跃连接数与后端服务器上的连接数不一致?
- 为什么配置了白名单后还能访问后端服务器?
- ELB修改后端服务器权重后多久生效?
- 为什么开启跨VPC后端需要确保负载均衡所属子网至少拥有16个可用IP地址?
- 健康检查
- 获取源IP
- HTTP/HTTPS监听器
- 会话保持
- 证书管理
- 监控
- 修订记录
- API参考 (巴黎区域)
- 用户指南(吉隆坡区域)
- API参考(吉隆坡区域)
- 用户指南(安卡拉区域)
- API参考(安卡拉区域)
- 通用参考
链接复制成功!
高级转发策略概述
高级转发策略简介
独享型负载均衡支持开启高级转发策略功能。开启了“高级转发策略”功能后,请参考以下内容为独享型负载均衡添加转发策略。
高级转发策略支持多样化的转发规则和转发动作,便于灵活的分流业务,合理的分配资源。详情见表1。

高级转发策略的实现分为以下四个步骤:
- 客户端发送请求至ELB。
- ELB首先根据事先设置好的高级转发策略中的转发规则匹配请求。
- ELB再根据转发规则对应的动作将客户端请求转发至对应的后端服务器进行处理。
- 最后返回响应至客户端。
匹配原理
每个HTTP/HTTPS监听器创建后,都会有一个默认的转发策略将请求转发到监听器默认的后端服务器组(即创建监听器时配置的后端服务器组)。
默认转发策略的优先级最低,不参与转发策略排序;可以编辑,但不可删除。
每个请求会按照转发策略的优先级顺序(转发策略编号的数值越小,优先级越高)逐条匹配,一旦能够匹配到一条转发策略,立即按照当前转发策略进行转发。
- 如果能匹配到监听器的转发策略,则按该转发策略转发请求。
- 如果不能匹配到监听器的转发策略,则将请求按照默认转发策略进行转发。
转发规则
高级转发策略支持的转发规则类型有:域名、URL、HTTP请求方法、HTTP请求头、查询字符串、网段。
转发规则 |
描述 |
---|---|
域名 |
域名示例: 请求链接为:https://www.example.com/login.php?locale=zh-cn#videos 转发规则选择“域名”时,填写:www.example.com |
URL |
更多关于URL匹配转发规则的信息,请参见URL高级转发策略匹配示例。 URL示例: 请求链接为:https://www.example.com/login.php?locale=zh-cn#videos 转发规则选择“URL”时,填写:/login.php |
查询字符串 |
当请求中的字符串与设置好的转发策略中的字符串相匹配时,触发转发。
查询字符串是键值对的形式,需要分别设置值:
查询字符串示例: 请求链接为:https://www.example.com/login.php?locale=zh-cn#videos 转发规则需配置“查询字符串”: 键(key):locale 值(value):zh-cn |
HTTP请求方法 |
触发转发的HTTP请求方法。
HTTP请求方法示例: GET |
HTTP请求头 |
触发转发的HTTP请求头。
请求头是键值对的形式,需要分别设置值:
HTTP请求头示例: 键(key):Accept-Language 值(value):zh-CN |
网段 |
触发转发的请求网段。 网段示例: 192.168.1.0/24或2020:50::44/127 |
转发动作
高级转发策略支持的转发动作类型有:转发至后端服务器组、重定向至监听器、重定向至URL、返回固定响应、重写。
转发动作 |
描述 |
---|---|
转发至后端服务器组 |
如果满足转发规则的条件,则将请求转发至配置好的后端服务器组。 |
重定向至监听器 |
如果满足转发规则的条件,则将请求转发至配置好的监听器上。 选择“重定向至监听器”并配置监听器后,除访问控制以外原有监听器配置会失效。 例如:配置了重定向至监听器后,当客户端通过HTTP请求访问的时候,后端服务器会返回HTTPS的响应,即强制以HTTPS请求访问网页。因此实际以HTTPS监听器的配置为准向后端服务器进行转发,原有HTTP监听器的配置失效。 |
重定向至URL |
如果满足转发规则的条件,则将请求重定向至配置好的URL。 客户端访问ELB网址A后,ELB返回302或者其他3xx返回码和目的网址B,客户端自动跳转到网址B,网址B可自定义。
需要设置如下参数,其中协议、域名、端口和路径至少设置一条。
重定向至URL示例 重定向的链接为:http://www.example1.com/index.html?locale=zh-cn#videos 协议:HTTP 域名:www.example1.com 端口:8081 路径:/index.html 查询字符串:locale=zh-cn 返回码:301 |
返回固定响应 |
如果满足转发规则的条件,则返回固定响应。 用户访问ELB实例后,ELB直接返回响应,不向后端服务器继续转发,返回响应的状态码和内容可以自定义。
需要设置如下参数:
响应正文示例 text/plain 很抱歉,暂不支持该语言. text/css <head><style type="text/css">div {background-color:red}#div {font-size:15px;color:red}</style></head> text/html <form action="/" method="post" enctype="multipart/form-data"><input type="text" name="description" value="some text"><input type="file" name="myFile"><button type="submit">Submit</button></form> application/javascript String.prototype.trim = function() {var reExtraSpace = /^\s*(.*?)\s+$/;return this.replace(reExtraSpace, "$1")} application/json { "publicip": { "type": "5_bgp","ip_version": 4},"bandwidth": {"name": "bandwidth123","size": 10,"share_type": "PER"}} 填写响应正文时,请不要有回车格式,否则无法保存。 |
URL高级转发策略匹配示例
配置了5个URL高级转发策略,如表4所示。
请求URL |
转发策略 |
设定的URL |
匹配模式 |
转发策略优先级 |
转发至后端服务器组 |
---|---|---|---|---|---|
/elb/abc.html |
转发策略01 |
/elb/abc.html |
前缀匹配 |
优先级 1 |
后端服务器组01 |
转发策略02 |
/elb |
前缀匹配 |
优先级 2 |
后端服务器组02 |
|
/exa/index.html |
转发策略03 |
/exa[^\s]* |
正则匹配 |
优先级 3 |
后端服务器组03 |
转发策略04 |
/exa/index.html |
正则匹配 |
优先级 4 |
后端服务器组04 |
|
/mpl/index.html |
转发策略05 |
/mpl/index.html |
精确匹配 |
优先级 5 |
后端服务器组05 |
转发情况如下:
- 当请求URL为“/elb/abc.html”时,初步可以匹配到两个前缀匹配:转发策略01、转发策略02,但由于转发策略01的优先级高于转发策略02的优先级(优先级 2 < 优先级 1),因此最终匹配到转发策略01,将请求转发至后端服务器组01。
- 当请求URL为“/exa/index.html”时,初步可以匹配到两个正则匹配:转发策略03、转发策略04,但由于转发策略03的优先级高于转发策略04的优先级(优先级 4 < 优先级 3),因此最终匹配到转发策略03,将请求转发至后端服务器组03。
- 当请求URL为“/mpl/index.html”时,可以通过精确匹配,匹配到转发策略05,将请求转发至后端服务器组05。
转发动作的路径支持URL的正则表达式示例
转发动作“重定向至URL”的路径由英文字母、数字和特殊字符_~';@^-%#&$.*+?,=!:|\/()[]{}组成,只能由/开头。${path}表示与源路径相同。
转发规则选择URL的正则匹配后,转发动作的路径支持正则表达式替换。
路径替换流程
- URL匹配:客户端发送请求,并匹配到某一条URL转发规则的正则表达式。URL中支持写入一个或多个正则表达式,支持写入多个()。
- 路径按照正则表达式的规范提取替换变量:转发动作中的路径通过$1来获取( )中的变量,最多可以获取九个变量至$9。
- 自由组合出目标路径:获取的变量对路径设置中的$1进行替换,最终拼接成重写或重定向的实际路径。
路径替换示例
当客户端发送请求的路径为/test/ELB/elb/index时,匹配转发规则的转发条件/test/(.*)/(.*)/index,经转发路径/$1/$2提取变量后,最终后端服务器接收到的请求路径为/ELB/elb。