3.3 高级转发策略(独享型)
3.3.3 配置高级转发策略
操作场景
独享型负载均衡开启高级转发策略功能后,ELB实例会根据您配置的高级转发策略将不 同的请求按照不同的方式处理。
每条高级转发策略必须包含转发规则和动作。
● 支持的转发规则有:域名、URL、HTTP请求方法、HTTP请求头、查询字符串、
网段。详见转发规则类型。
● 支持的动作类型有:转发至后端服务器组、重定向至监听器、添加重定向至 URL、返回固定响应。详见动作类型。
● 支持域名类型转发规则以*.开头。
● 支持单条转发策略中添加多个转发规则。
● 支持转发策略排序。
约束与限制
● 高级转发策略开启后不允许关闭。
● 一个高级转发策略支持添加10个条件(所有转发规则的条件之和)。
开启高级转发策略
1. 登录管理控制台。
2. 在管理控制台左上角单击 图标,选择区域和项目。
3. 单击页面左上角的 ,选择“网络 > 弹性负载均衡”。
4. 在“负载均衡器”界面,单击需要添加转发策略的负载均衡器名称。
5. 切换到监听器页签,单击目标监听器名称。
6. 在页面右侧“基本信息”中,单击“开启高级转发策略”
7. 单击“确定”。
添加高级转发策略
1. 登录管理控制台。
2. 在管理控制台左上角单击 图标,选择区域和项目。
3. 单击页面左上角的 ,选择“网络 > 弹性负载均衡”。
4. 在“负载均衡器”界面,单击需要添加转发策略的负载均衡器名称。
5. 切换到监听器页签,单击目标监听器名称。
6. 单击目标监听器右侧的 按钮,选择“设置转发策略”。
或者直接单击页面右侧的“转发策略”,进入到转发策略页签。
7. 在右侧“转发策略”子页签中,单击“添加转发策略”。
www.example.com
URL 触发转发的URL。
● 可以并列添加多个URL。
请求的URL和设定URL完全一 致。
– 前缀匹配
请求的URL匹配已设定URL开 头的URL。
– 正则匹配
请求的URL和设定的URL正则 表达式匹配。
/login.php
HTTP请求
方法 触发转发的HTTP请求方法。主要分 为以下几种:
GET、POST、PUT、DELETE、
PATCH、HEAD、OPTIONS 可以并列设置多个请求方法。
GET
HTTP请求 字和特殊字符!#$%&'()*+,.
\/:;<=>?@[]^-_'{|}~。
● 键(key):
Accept-Language
● 值(value):zh-CN
locale
● 值(value):zh-cn
网段 触发转发的请求网段。 192.168.1.0/24 动作 转发至后 好的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
响应正文:服务器访 问正常
转发策略排序
一个监听器可以添加多个转发策略,多个转发策略之间可以通过排序来设置优先级。
1. 登录管理控制台。
2. 在管理控制台左上角单击 图标,选择区域和项目。
3. 单击页面左上角的 ,选择“网络 > 弹性负载均衡”。
4. 在“负载均衡器”界面,单击需要修改转发策略的负载均衡器名称。
5. 切换到监听器页签,单击需要修改转发策略的监听器名称。
6. 单击转发策略右侧的 按钮,选择“设置转发策略”。
或者直接打开页面右侧的“转发策略”。
7. 在右侧“转发策略”子页签中,单击上方的“排序”。
8. 单击转发策略右上角的“上移”或“下移”。
9. 单击“保存”。
图3-8 转发策略排序
URL 高级转发策略匹配示例
配置了5个URL高级转发策略,如表3-6所示。
表3-6 URL 高级转发策略匹配示例 /elb/
abc.html 转发策
略01 /elb/
php.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。
1. 登录管理控制台。
2. 在管理控制台左上角单击 图标,选择区域和项目。
3. 单击页面左上角的 ,选择“网络 > 弹性负载均衡”。
4. 在“负载均衡器”界面,单击需要修改转发策略的负载均衡器名称。
5. 切换到监听器页签,单击需要修改转发策略的监听器名称。
6. 单击转发策略右侧的 按钮,选择“设置转发策略”。
或者直接打开页面右侧的“转发策略”。
7. 在右侧“转发策略”子页签中,选择需要修改的转发策略,单击“编辑”。
8. 根据界面提示修改参数,单击“保存”。
删除转发策略
用户可以根据实际需要删除已经创建的转发策略。
转发策略删除后无法恢复,请谨慎操作。
1. 登录管理控制台。
2. 在管理控制台左上角单击 图标,选择区域和项目。
3. 单击页面左上角的 ,选择“网络 > 弹性负载均衡”。
4. 在“负载均衡器”界面,单击需要删除转发策略的负载均衡器名称。
5. 切换到监听器页签,单击需要删除转发策略的监听器名称。
6. 单击转发策略右侧的 按钮,选择“设置转发策略”。
或者直接打开页面右侧的“转发策略”。
7. 在右侧“转发策略”子页签中,选择需要删除的转发策略,单击“删除”。
8. 单击“是”。