独享型负载均衡支持开启高级转发策略功能。 开启了“高级转发策略” 功能后,请参考以下内容为独享型负载均衡添加转发策略。
高级转发策略开启后,ELB实例会根据您配置的高级转发策略将不同的请求按照不同的方式处理。
- 客户端发送请求至ELB;
- ELB首先根据事先设置好的高级转发策略中的转发规则匹配请求;
- ELB再根据转发规则对应的动作将客户端请求转发至对应的后端云主机进行处理;
- 最后返回响应至客户端。
转发规则和动作类型
每个监听器都具有默认转发策略,您也可以选择定义其他转发策略。每条转发策略由优先级、一个或多个转发规则以及转发动作组成。您可以随时添加或编辑转发策略。
- 默认转发策略
每个HTTP/HTTPS监听器创建后,都会有一个默认的转发策略,该转发策略的的转发规则是监听器的协议和端口,动作为“转发至后端主机组”,后端主机组为创建监听器时配置的后端主机组。
默认转发策略的优先级最低,不参与转发策略排序;可以编辑,但不可删除。
当开启高级转发策略时,支持设置默认转发策略是否使用后端主机组。
- 转发规则类型
高级转发策略支持的转发规则类型有:域名、URL、HTTP请求方法、HTTP请求头、查询字符串、网段。
域名:触发转发的域名,支持精确域名、泛域名。
- 可以并列添加多个域名。每个域名的长度不能超过46个字符。
- 至少包含两个字符串,字符串间以点分割,字符串只能由英文字母、数字、中划线、小数点和特殊字符组成。字符串中须以英文字母、数字或开头,不能以中划线结尾。 只能出现在开头且必须以 .开始。
URL:触发转发的URL。
- 可以并列添加多个URL。
- 由英文字母、数字和特殊字符_~';@^-%#$.*+?,=!:|/()[]{}组成,并在精确匹配和前缀匹配时,只能由/开头。
- URL的匹配模式有如下三种:
- 精确匹配:请求的URL和设定URL完全一致。
- 前缀匹配:请求的URL匹配已设定URL开头的URL。
- 正则匹配:请求的URL和设定的URL正则表达式匹配。
注意如果URL中包含特殊字符(如:?或#),则需要先将特殊字符进行转义后再配置URL转发策略。
查询字符串:当请求中的字符串与设置好的转发策略中的字符串相匹配时,触发转发。
- 查询字符串是键值对的形式,需要分别设置值:
- 键(key):只能包含英文字母、数字和特殊字符!$'()*+,./:;=?@^-_'。
- 值(value):一个键下可以配置多个值。只能包含英文字母、数字和特殊字符!$'()+,./:;=?@^-_'。还支持和?两种通配符。
HTTP请求方法:触发转发的HTTP请求方法。
- 查询字符串是键值对的形式,需要分别设置值:
- 可以并列设置多个请求方法。
- 主要分为以下几种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS
HTTP请求头:触发转发的HTTP请求头。
- 请求头是键值对的形式,需要分别设置值:
- 键(key):只能由英文字母、数字、下划线和中划线组成。
- 值(value):一个键下可以配置多个值。只能包含英文字母、数字和特殊字符!#$%&'()+,./:;<=>?@[]^-_'{|}~。还支持和?两种通配符。
网段:触发转发的请求网段。
动作类型
高级转发策略支持的动作类型有:转发至后端主机组、重定向至监听器、重定向至URL、返回固定响应。
- 转发至后端主机组
如果满足转发策略条件,则将请求转发至配置好的后端主机组。需要配置后端主机组。
- 重定向至监听器
如果满足转发策略条件,则将请求转发至配置好的监听器上。需要配置监听器。
说明选择“重定向至监听器”并配置监听器后,除访问控制以外原有监听器配置会失效。
例如:配置了重定向至监听器后,当客户端通过HTTP请求访问的时候,后端云主机会返回HTTPS的响应,即强制以HTTPS请求访问网页。因此实际以HTTPS监听器的配置为准向后端云主机进行转发,原有HTTP监听器的配置就无效了。
- 重定向至URL
如果满足转发策略条件,则将请求重定向至配置好的URL。
客户端访问ELB网址A后,ELB返回302或者其他3xx返回码和目的网址B,客户端自动跳转到网址B,网址B可自定义。
- 需要设置如下参数
- 协议 :可以选择“ {protocol}”或“HTTP”或“HTTPS”。 {protocol}表示与源协议相同。
- 域名 :至少包含两个字符串,字符串间以点分割,字符串只能由英文字母、数字、中划线和小数点组成。字符串必须以英文字母或数字开头,不能以中划线结尾。${host}表示与源域名相同。
- 端口 :取值范围是1~65535。${port}表示与源端口相同。
- 路径 :由英文字母、数字和特殊字符_~';@^-%#&**.*+?,=!:|/()[]{}组成,只能由/开头。**{path}表示与源路径相同。
- 查询字符串 :只能包含英文字母、数字额特殊字符!$'()*+,./:;=?@&^-_',&仅支持作为分隔符使用。
- 返回码 :可以选择“301”、“302”、“303”、“307”、“308”。
说明协议、域名、端口和路径至少设置一条。
- 返回固定响应
如果满足转发策略条件,则返回固定响应。
用户访问ELB实例后,ELB直接返回响应,不向后端云主机继续转发,返回响应的状态码和内容可以自定义。
- 需要设置如下参数
- 返回码 :默认支持2XX、4XX、5XX系列状态码。
- Content-Type :可以选择“text/plain”、“text/css”、“text/html”、“application/javascript”、“application/json”。
- 响应正文 :非必填项。
说明填写响应正文时,请不要有回车格式,否则无法保存。
配置高级转发策略动作类型
独享型负载均衡开启高级转发策略功能后,ELB实例会根据您配置的高级转发策略将不同的请求按照不同的方式处理。
每条高级转发策略必须包含转发规则和动作。
- 支持的转发规则有:域名、URL、HTTP请求方法、HTTP请求头、查询字符串、网段。详见转发规则类型。
- 支持的动作类型有:转发至后端主机组、重定向至监听器、添加重定向至URL、返回固定响应。详见动作类型。
- 支持域名类型转发规则以*.开头。
- 支持单条转发策略中添加多个转发规则。
- 支持转发策略排序。
- 高级转发策略开启后不允许关闭。
开启高级转发策略
- 登录管理控制台。
- 在管理控制台左上角选择区域和项目。
- 选择“服务列表 > 网络 > 弹性负载均衡”。
- 在“负载均衡器”界面,单击需要添加转发策略的负载均衡器名称。
- 切换到监听器页签,单击目标监听器名称。
- 在页面右侧“基本信息”中,单击“开启高级转发策略”
- 单击“确定”。
添加高级转发策略
- 登录管理控制台。
- 在管理控制台左上角选择区域和项目。
- 选择“服务列表 > 网络 > 弹性负载均衡”。
- 在“负载均衡器”界面,单击需要添加转发策略的负载均衡器名称。
- 切换到监听器页签,单击目标监听器名称。
- 单击目标监听器右侧“设置”入口,选择“设置转发策略”。
- 在右侧“转发策略”子页签中,单击“添加转发策略”并进行配置。
- 配置完成,单击“保存”。
添加转发策略的参数说明表
参数 说明 样例 转发规则 域名 触发转发的域名,支持精确域名、泛域名。
可以并列添加多个域名。
至少包含两个字符串,字符串间以点分割,字符串只能由英文字母、数字、中划线、小数点和特殊字符组成。字符串中须以英文字母、数字或开头,不能以中划线结尾。只能出现在开头且必须以.开始。www.example.com URL 触发转发的URL。
可以并列添加多个URL。
由英文字母、数字和特殊字符_~';@^-%#$.*+?,=!:|/()[]{}组成,并在精确匹配和前缀匹配时,只能由/开头。请求的URL:/login.php
精确匹配:/login.php
前缀匹配:/log
正则匹配:/(\w)*.phpHTTP请求方法 触发转发的HTTP请求方法。主要分为以下几种:
GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS
可以并列设置多个请求方法。GET HTTP请求头 触发转发的HTTP请求头。
请求头是键值对的形式,需要分别设置值:
键(key):只能由英文字母、数字、下划线和中划线组成。
值(value):一个键下可以配置多个值。只能包含英文字母、数字和特殊字符!#$%&'()*+,./:;<=>?@[]^-_'{|}~。键(key):Accept-Language
值(value):zh-CN查询字符串 触发转发的请求中的字符串。当请求中的字符串与设置好的转发策略中的字符串相匹配时,触发转发。
查询字符串是键值对的形式,需要分别设置值:
键(key):只能包含英文字母、数字和特殊字符!$'()+,./:;=?@^-_'。
值(value):一个键下可以配置多个值。只能包含英文字母、数字和特殊字符!$'()+,./:;=?@^-_'。键(key):locale
值(value):zh-cn网段 触发转发的请求网段。 192.168.1.0/24 动作 转发至后端主机组 如果满足转发策略条件,则将请求转发至配置好的后端主机组。
需要配置后端云主机组。转发至后端主机组 重定向至监听器 将HTTP监听器上的请求转发至配置好的HTTPS监听器上。
需要配置监听器。
说明:
选择“重定向至监听器”并配置监听器后,除访问控制以外原有监听器配置会失效。
例如:配置了重定向至监听器后,当客户端通过HTTP请求访问的时候,后端主机会返回HTTPS的响应,即强制以HTTPS请求访问网页。因此实际以HTTPS监听器的配置为准向后端云主机进行转发,原有HTTP监听器的配置就无效了。- 重定向至URL 如果满足转发策略条件,则将请求重定向至配置好的URL。
客户端访问ELB网址A后,ELB返回302或者其他3xx返回码和目的网址B,客户端自动跳转到网址B,网址B可自定义。
需要设置如下参数:
协议:可以选择“${protocol}”或“HTTP”或“HTTPS”。${protocol}表示与源协议相同。
域名:至少包含两个字符串,字符串间以点分割,字符串只能由英文字母、数字、中划线和小数点组成。字符串必须以英文字母或数字开头,不能以中划线结尾。${host}表示与源域名相同。端口:取值范围是1~65535。${port}表示与源端口相同。
路径:由英文字母、数字和特殊字符_';@^-%$&#.+?,=!:|/()[]{}组成,只能由/开头。${path}表示与源路径相同。
查询字符串:只能包含英文字母、数字额特殊字符!$'()+,./:;=?@&^-_',&仅支持作为分隔符使用。
返回码:可以选择“301”、“302”、“303”、“307”、“308”。
说明协议、域名、端口和路径至少设置一条。
协议:HTTP
域名:www.example1.com
端口:8081
路径:/index.html
查询字符串:locale=zh-cn
返回码:301返回固定响应 如果满足转发策略条件,则返回固定响应。
用户访问ELB实例后,ELB直接返回响应,不向后端云主机继续转发,返回响应的状态码和内容可以自定义。
需要设置如下参数:
返回码:只能由数字组成,默认以2、4、5开头,且总长度为3个字符。
Content-Type:可以选择“text/plain”、“text/css”、“text/html”、“application/javascript”、“application/json”。
响应正文:非必填项。返回码:200
Content-Type:text/plain
响应正文:云主机访问正常
一个监听器可以添加多个转发策略,多个转发策略之间可以通过排序来设置优先级。
- 登录管理控制台。
- 在管理控制台左上角选择区域和项目。
- 选择“服务列表 > 网络 > 弹性负载均衡”。
- 在“负载均衡器”界面,单击需要修改转发策略的负载均衡器名称。
- 切换到监听器页签,单击需要修改转发策略的监听器名称。
- 单击转发策略右侧“设置”入口,选择“设置转发策略”。
- 在右侧“转发策略”子页签中,单击上方的“排序”。
- 单击转发策略右上角的“上移”或“下移”。
- 单击“保存”。
修改转发策略
- 登录管理控制台。
- 在管理控制台左上角选择区域和项目。
- 选择“服务列表 > 网络 > 弹性负载均衡”。
- 在“负载均衡器”界面,单击需要修改转发策略的负载均衡器名称。
- 切换到监听器页签,单击需要修改转发策略的监听器名称。
- 单击转发策略右侧“设置”入口,选择“设置转发策略”。
- 在右侧“转发策略”子页签中,选择需要修改的转发策略,单击“编辑”。
- 根据界面提示修改参数,单击“保存”。
删除转发策略
用户可以根据实际需要删除已经创建的转发策略。转发策略删除后无法恢复,请谨慎操作。
- 登录管理控制台。
- 在管理控制台左上角选择区域和项目。
- 选择“服务列表 > 网络 > 弹性负载均衡”。
- 在“负载均衡器”界面,单击需要删除转发策略的负载均衡器名称。
- 切换到监听器页签,单击需要删除转发策略的监听器名称。
- 单击转发策略右侧“设置”入口,选择“设置转发策略”。
- 在右侧“转发策略”子页签中,选择需要删除的转发策略,单击“删除”。
- 单击“是”。