七层转发域名和URL规则说明
最近更新时间: 2024-10-17 17:10:00
业务流程图
负载均衡的七层业务流程及四层业务流程如下所示:
使用负载均衡的七层转发 HTTP / HTTPS 协议时,在一个 CLB 实例的监听器中新建转发规则,用户可以添加一个对应的域名。
当用户仅建立了一条转发规则时,访问 VIP + URL 可以对应相应的转发规则,并正常访问服务。
当用户建立了多条转发规则时,此时访问 VIP + URL 不能确保访问到某一个具体的域名 + URL,需要用户直接访问域名 + URL 来确保具体的转发规则生效。即用户配置多条转发规则时,同一个 VIP 对应了多条域名,此时不建议通过 VIP + URL 访问服务,而应该通过具体的域名 + URL 访问服务。
转发规则配置说明
域名配置规则
负载均衡七层监听器的转发规则配置域名时,支持正则表达式,长度限制为1 - 120。
非正则的域名支持的字符集如下:
a-z``0-9``.``-
通配的域名,目前仅支持
*.example.com
或者www.example.*
的形式,且单个域名中仅支持*
出现一次。域名的正则表达式中不支持的字符集如下:
"``{``}``;``~```` ```
空格`负载均衡支持的正则域名举例如下:
~^www\d+\.example\.com$
健康检查配置规则
当用户填写的域名为通配域名时,需要指定某一固定域名(非正则)为健康检查域名。该健康检查域名配置支持的字符集如下:
a-z``0-9``.``-
负载均衡七层监听器配置健康检查的路径时,默认
/
,必须以/
开头,长度限制为1 - 120。暂不支持正则表达,建议指定某个固定 URL 路径(静态页面)进行健康检查。其中,健康检查路径配置支持的字符集如下:a-z``A-Z``0-9``.``-``/``=``?
域名匹配规则
转发规则中不配置域名,填写 IP 代替,并在转发组中配置多个 URL,该服务通过 VIP + URL 进行访问。
转发规则中配置完整域名,并在转发组中配置多个 URL,服务通过域名 + URL 进行访问。
转发规则中配置通配符域名,并在转发组中配置多个 URL,通过匹配请求域名 + URL 进行访问。当用户希望不同的域名能够指向相同的 URL 地址时,可以参照这种方式进行配置。以
example.qcould.com
为例,格式如下所示:
example.qcloud.com
精确匹配example.qcloud.com
域名。\*.qcloud.com
匹配所有以qcloud.com
结尾的域名。example.qcloud.\*
匹配所有以example.qcloud
开头的域名。
- 转发规则中配置域名,并在转发组中配置模糊匹配的 URL。使用前缀匹配,可在最后加入通配符
$
进行完整匹配。 例如,用户通过配置转发组URL ~* \.(gif|jpg|bmp)$
,希望匹配任何以 gif、 jpg 或 bmp 结尾的文件。
转发域名中的默认域名策略
您可选择开启或关闭默认域名。
开启:当客户端请求没有匹配本监听器的任何域名时,CLB会将请求转发给默认域名(Default Server),每个监听器只能配置且必须配置一个默认域名。
如果您的七层监听器已配置默认域名,未匹配其他规则的客户端请求会被转发到默认域名。
如果您的七层监听器未配置默认域名,未匹配其他规则的客户端请求则会被转发到 CLB 加载的第一个域名,由于加载顺序与控制台配置顺序可能不一致,因此不一定是控制台配置的第一个。
关闭:当客户端请求没有匹配本监听器的任何域名时,请求将无法被转发。
例如,在 CLB1 的 HTTP:80
监听器下配置了2个域名: www.test1.com
,www.test2.com
,其中 www.test1.com
是默认域名。当用户访问 www.example.com
时,由于没有匹配到任何一个域名,CLB会将该请求转发给默认域名 www.test1.com
。
转发组 URL 匹配规则说明
URL 配置规则
负载均衡七层监听器转发路径 URL,默认 /
,必须以 /
开头,长度限制为1 - 120。
URL 支持正则表达,用如下方法判断:
=
开头表示精确匹配。^~
开头表示 URL 以某个常规字符串开头,不是正则匹配。~
开头表示区分大小写的正则匹配。~*
开头表示不区分大小写的正则匹配。/
通用匹配, 如果没有其它匹配,任何请求都会匹配到。非正则的 URL 路径,以
/
开头,支持的字符集如下:a-z``A-Z``0-9``.``-``/``=``?
正则的 URL,不支持的字符集如下:
"``{``}``;``\
```~`````空格
URL 匹配规则示例
- 匹配规则:优先精确匹配,之后依照规则模糊匹配。
例如,依照上图配置转发规则及转发组后,如下请求将依次被匹配到不同的转发组中:
example.qloud.com/test1/image/index1.html
由于精确匹配转发组1设置的 URL 规则,则该请求将被转发到转发组1所关联的后端云服务器中,即图中 RS1 和 RS2 的80端口。example.qloud.com/test1/image/hello.html
由于此请求无法精确匹配第一条规则,因此将继续匹配转发组2中的规则,发现模糊匹配成功。因此该请求将被转发到转发组2所关联的后端云服务器中,图中即 RS2 和 RS3 的81端口。example.qloud.com/test2/video/mp4/
由于此请求无法精确匹配到前两条规则,因此将继续向下匹配,直至发现可以模糊匹配转发组 3 中的规则。因此该请求将被转发到转发组3所关联的后端云服务器中,图中即 RS4 的90端口。example.qloud.com/test3/hello/index.html
由于此请求无法匹配到前三个转发组中的规则,因此将匹配用户配置的最通用规则Default URL
。这时是 Nginx 转发请求给后端应用服务器,如 FastCGI(php),tomcat(jsp),Nginx 作为反向代理服务器存在。example.qloud.com/test2/
由于请求无法精确匹配到前三个转发组中的规则,因此将匹配用户配置的通用规则default URL
。如果用户设置的 URL 规则中,服务不能正常运行,则匹配成功后,不会重定向到其他页面。 例如,客户端请求
example.qloud.com/test1/image/index1.html
匹配了转发组1的 URL 规则,但此时转发组1的后端服务器运行异常,出现404的页面时,用户进行访问时页面则会显示404,不会跳转到其他页面。建议用户设置 Default URL,将其指向服务稳定的页面(如静态页面、首页等),并绑定所有后端云服务器。此时,如果所有规则均没有匹配成功时,系统会将请求指向 Default URL 所在的页面,否则可能会出现404的问题。
如果用户未设置 Default URL,且所有转发规则都不匹配时,此时访问服务,会返回404。