文档中心>负载均衡>操作指南>负载均衡监听器>七层转发域名和 URL 规则说明

七层转发域名和 URL 规则说明

最近更新时间:2024-11-01 10:00:52

我的收藏

业务流程图

负载均衡(原“应用型负载均衡”)的七层业务流程及四层业务流程如下所示:

使用负载均衡的七层转发 HTTP/HTTPS 协议时,在一个 CLB 实例的监听器中新建转发规则,用户可以添加一个对应的域名。
当用户仅建立了一条转发规则时,访问 VIP + URL 可以对应相应的转发规则,并正常访问服务。
当用户建立了多条转发规则时,此时访问 VIP + URL 不能确保访问到某一个具体的域名 + URL,需要用户直接访问域名 + URL 来确保具体的转发规则生效。即用户配置多条转发规则时,同一个 VIP 对应了多条域名,此时不建议通过 VIP + URL 访问服务,而应该通过具体的域名 + URL 访问服务。

七层转发配置说明

转发域名配置规则

七层负载均衡可以将来自不同域名和 URL 的请求转发到不同的服务器上处理,一个七层监听器可以配置多个域名,一个域名可以配置多条转发路径。转发域名的配置方式请参考 配置负载均衡的转发域名
转发域名长度限制:1 - 80个字符。
不能以 _ 开头。
暂不支持后缀为中文的域名。
支持精准域名,如 www.example.com
支持通配域名,目前仅支持 *.example.com 或者 www.example.*的形式,即 * 在开头或结尾,且单个域名中仅支持 * 出现一次。
非正则表达式的转发域名,支持的字符集为:a-z0-9.-_
转发域名支持正则表达式,正则表达式的域名:
支持的字符集为:a-z 0-9 . - ? = ~ _ - + \\ ^ * ! $ & | ( ) [ ]
需以 ~ 开头,且 ~ 仅能出现一次。
负载均衡支持的正则域名举例如下:~^www\\d+\\.example\\.com$

转发域名匹配说明

转发域名通用匹配策略

1. 转发规则中不配置域名,填写 IP 代替,并在转发组中配置多个 URL,该服务通过 VIP + URL 进行访问。
2. 转发规则中配置完整域名,并在转发组中配置多个 URL,服务通过域名 + URL 进行访问。
3. 转发规则中配置通配符域名,并在转发组中配置多个 URL,通过匹配请求域名 + URL 进行访问。当用户希望不同的域名能够指向相同的 URL 地址时,可以参照这种方式进行配置。以 example.qcould.com 为例,格式如下所示:
精准域名 example.qcloud.com,精确匹配 example.qcloud.com 域名。
前缀通配符域名 *.qcloud.com 匹配所有以 qcloud.com 结尾的域名。
后缀通配符域名 example.qcloud.* 匹配所有以 example.qcloud 开头的域名。
正则匹配域名 ~^www\\d+\\.example\\.com$ 根据正则表达式进行匹配。
匹配优先级:精准域名 > 前缀通配符域名 > 后缀通配符域名 > 正则表达式域名,同一级域名如果有多个域名同时命中,匹配顺序无法保证先后,建议使用更加精准的域名以避免多个规则同时命中的情况。
4. 转发规则中配置域名,并在转发组中配置模糊匹配的 URL。使用前缀匹配,可在最后加入通配符 $ 进行完整匹配。 例如,用户通过配置转发组 URL ~*.(gif|jpg|bmp)$,希望匹配任何以 gifjpgbmp 结尾的文件。

转发域名中的默认域名策略

当客户端请求没有匹配本监听器的任何域名时,CLB 会将请求转发给默认域名(Default Server),让默认规则可控,每个监听器下只能配置一个默认域名。 例如,在 CLB1 的 HTTP:80 监听器下配置了2个域名: www.test1.comwww.test2.com,其中 www.test1.com 是默认域名。当用户访问 www.example.com 时,由于没有匹配到任何一个域名,CLB会将该请求转发给默认域名 www.test1.com

说明:
2020年05月18日之前,七层监听器是否配置默认域名为可选项,您可以选择配置默认域名或者不配置。
如果您的七层监听器已配置默认域名,未匹配其他规则的客户端请求会被转发到默认域名。
如果您的七层监听器未配置默认域名,未匹配其他规则的客户端请求则会被转发到 CLB 加载的第一个域名,由于加载顺序与控制台配置顺序可能不一致,因此不一定是控制台配置的第一个。
自2020年05月18日起:
所有新建的七层监听器都必须配置默认域名:七层监听器的第一个规则一定会启用默认域名,调用 API 创建七层规则时,CLB会 将 DefaultServer 字段自动设置为 true。
所有已配置默认域名的监听器,修改或删除默认域名时需指定新的默认域名:控制台操作时需您指定新的默认域名;调用 API 操作时,若不设置新的默认域名 CLB 会随机选取一个剩余域名设置为新的默认域名。
存量未配置默认域名的规则:您可以按业务需求直接配置默认域名,操作步骤如下“操作四”;若您不配置,腾讯云会将 CLB 加载的第一个域名设置为默认域名,存量监听器会在2020年06月19日内处理完毕。
上述策略自2020年05月18日起逐步实施,各个实例生效日可能略有差异。自2020年06月20日起,所有转发域名不为空的七层监听器都会有默认域名。
默认域名的有如下四项相关操作:
操作一:当为七层监听器配置第一条转发规则时,默认域名必须是开启状态。


操作二:关闭当前默认域名。
某监听器下有多个域名,关闭当前默认域名时,需指定新的默认域名。



当某监听器只有一个域名,且该域名是默认域名时,不允许关闭默认域名。



操作三:删除默认域名。
某监听器下有多个域名,删除默认域名下的规则:
若该规则不是默认域名的最后一条规则,可以直接删除。
若该规则是默认域名的最后一条规则,需设置新的默认域名。


当某监听器只有一个域名时,可以直接删除所有规则且不必设置新的默认域名。

操作四
:修改默认域名,您可以在监听器列表快捷修改默认域名。



转发 URL 路径配置规则

七层负载均衡可以将来自不同 URL 的请求转发到不同的服务器上处理,一个域名可以配置多条转发 URL 路径。
转发 URL 长度限制:1 - 200个字符。
非正则表达式的转发 URL ,必须以 / 开头,区分大小写,支持的字符集为:a-zA-Z0-9.-_/=?:
转发 URL 支持正则表达式:
正则表达式的 URL,需以 ~ 开头,且 ~ 仅能出现一次。
正则表达式的 URL 支持的字符集为: a-zA-Z0-9.-_/=?~^*$:()[]+|
正则表达式的 URL 举例如下:~* .png$
转发 URL 匹配规则如下:
= 开头表示精确匹配。
^~ 开头表示 URL 以某个常规字符串开头,不是正则匹配。
~开头表示区分大小写的正则匹配。
~* 开头表示不区分大小写的正则匹配。
/ 通用匹配,如果没有其它匹配,任何请求都会匹配到。

转发 URL 路径匹配说明


1. 匹配规则:按最长前缀匹配,优先精确匹配,而后模糊匹配。 例如,依照上图配置转发规则及转发组后,如下请求将依次被匹配到不同的转发规则中:
1.1 example.qloud.com/test1/image/index1.html 精确匹配转发规则1设置的 URL 规则,则该请求将被转发到转发规则1所关联的后端云服务器中,即图中 CVM1 和 CVM2 的80端口。
1.2 example.qloud.com/test1/image/hello.html 无精确匹配,按最长前缀将匹配到转发规则2,因此该请求将被转发到转发规则2所关联的后端云服务器中,即图中 CVM2 和 CVM3 的81端口。
1.3 example.qloud.com/test2/video/mp4/ 无精确匹配,按最长前缀将匹配到转发规则3,因此该请求将被转发到转发规则3所关联的后端云服务器中,即图中 CVM4 的90端口。
1.4 example.qloud.com/test3/hello/index.html 无精确匹配,按最长前缀将匹配到根目录 Default URL:example.qloud.com/,这时是 Nginx 转发请求给后端应用服务器,如 FastCGI(php),Tomcat(jsp),Nginx 作为反向代理服务器存在。
1.5 example.qloud.com/test2/无精确匹配,按最长前缀将匹配到根目录 Default URL:example.qloud.com/
2. 如果用户设置的 URL 规则中,服务不能正常运行,则匹配成功后,不会重定向到其他页面。 例如,客户端请求 example.qloud.com/test1/image/index1.html 匹配了转发规则1,但此时转发规则1的后端服务器运行异常,出现404的页面时,用户进行访问时页面则会显示404,不会重定向到其他页面。
3. 建议用户设置 Default URL,将其指向服务稳定的页面(如静态页面、首页等),并绑定所有后端云服务器。此时,如果所有规则均没有匹配成功时,系统会将请求指向 Default URL 所在的页面,否则可能会出现404的问题。
4. 如果用户未设置 Default URL,且所有转发规则都不匹配时,此时访问服务,会返回404。
5. 七层 URL 路径末尾斜杠的说明:当用户设置的 URL 是以/结尾,但客户端访问时并没有带/,那么该请求会被重定向到以/结尾的规则(301重定向)。 例如,HTTP:80 监听器下,配置的域名是 www.test.com
5.1 该域名下设置的 URL 为/abc/
客户端访问 www.test.com/abc 时,会被重定向到 www.test.com/abc/
客户端访问 www.test.com/abc/ 时,会匹配到 www.test.com/abc/
5.2 该域名下设置的 URL 为/abc
客户端访问 www.test.com/abc 时,会匹配到 www.test.com/abc
客户端访问 www.test.com/abc/ 时,也会匹配到 www.test.com/abc
说明:
当业务未配置"/" location,并尝试访问 https://xxx/ 时,若 index.html 内容为空,则返回 200;若 index.html 不存在,则返回 404。

七层健康检查配置说明

健康检查域名配置规则

健康检查域名是七层负载均衡探测后端服务健康状态的域名。
健康检查域名长度限制:1 - 80个字符。
健康检查域名默认为转发域名。
健康检查域名不支持正则表达式,当您的转发域名为通配域名时,需要指定某一固定域名(非正则)为健康检查域名。
健康检查域名支持的字符集为:a-z0-9.-_,例如 www.example.qcould.com

健康检查路径配置规则

健康检查路径是七层负载均衡探测后端服务健康状态的 URL 路径。
健康检查路径长度限制:1 - 200个字符。
健康检查路径默认为 /,且必须以 / 开头。
健康检查路径不支持正则表达式,建议指定某个固定 URL 路径(静态页面)进行健康检查。
健康检查路径支持的字符集为:a-zA-Z0-9.-_/=?:,例如 /index