业务流程图
负载均衡(原“应用型负载均衡”)的七层业务流程及四层业务流程如下所示:
使用负载均衡的七层转发 HTTP/HTTPS 协议时,在一个 CLB 实例的监听器中新建转发规则,用户可以添加一个对应的域名。当用户仅建立了一条转发规则时,访问 VIP + URL 可以对应相应的转发规则,并正常访问服务。
当用户建立了多条转发规则时,此时访问 VIP + URL 不能确保访问到某一个具体的域名 + URL,需要用户直接访问域名 + URL 来确保具体的转发规则生效。即用户配置多条转发规则时,同一个 VIP 对应了多条域名,此时不建议通过 VIP + URL 访问服务,而应该通过具体的域名 + URL 访问服务。
七层转发配置说明
转发域名配置规则
转发域名长度限制:1 - 80个字符。
不能以
_
开头。暂不支持后缀为中文的域名。
支持精准域名,如
www.example.com
。支持通配域名,目前仅支持
*.example.com
或者 www.example.*
的形式,即 *
在开头或结尾,且单个域名中仅支持 *
出现一次。非正则表达式的转发域名,支持的字符集为:
a-z
0-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)$
,希望匹配任何以 gif
、 jpg
或 bmp
结尾的文件。转发域名中的默认域名策略
当客户端请求没有匹配本监听器的任何域名时,CLB 会将请求转发给默认域名(Default Server),让默认规则可控,每个监听器下只能配置一个默认域名。
例如,在 CLB1 的
HTTP:80
监听器下配置了2个域名: www.test1.com
,www.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-z
A-Z
0-9
.
-
_
/
=
?
:
。转发 URL 支持正则表达式:
正则表达式的 URL,需以
~
开头,且 ~
仅能出现一次。正则表达式的 URL 支持的字符集为:
a-z
A-Z
0-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-z
0-9
.
-
_
,例如 www.example.qcould.com
。健康检查路径配置规则
健康检查路径是七层负载均衡探测后端服务健康状态的 URL 路径。
健康检查路径长度限制:1 - 200个字符。
健康检查路径默认为
/
,且必须以 /
开头。健康检查路径不支持正则表达式,建议指定某个固定 URL 路径(静态页面)进行健康检查。
健康检查路径支持的字符集为:
a-z
A-Z
0-9
.
-
_
/
=
?
:
,例如 /index
。