七层转发域名和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``.``-``/``=``?

域名匹配规则

  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 开头的域名。

  1. 转发规则中配置域名,并在转发组中配置模糊匹配的 URL。使用前缀匹配,可在最后加入通配符 $ 进行完整匹配。 例如,用户通过配置转发组 URL ~* \.(gif|jpg|bmp)$,希望匹配任何以 gif、 jpg 或 bmp 结尾的文件。

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

您可选择开启或关闭默认域名。

  • 开启:当客户端请求没有匹配本监听器的任何域名时,CLB会将请求转发给默认域名(Default Server),每个监听器只能配置且必须配置一个默认域名。

    • 如果您的七层监听器已配置默认域名,未匹配其他规则的客户端请求会被转发到默认域名。

    • 如果您的七层监听器未配置默认域名,未匹配其他规则的客户端请求则会被转发到 CLB 加载的第一个域名,由于加载顺序与控制台配置顺序可能不一致,因此不一定是控制台配置的第一个。

  • 关闭:当客户端请求没有匹配本监听器的任何域名时,请求将无法被转发。

例如,在 CLB1 的 HTTP:80 监听器下配置了2个域名: www.test1.comwww.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 匹配规则示例

  1. 匹配规则:优先精确匹配,之后依照规则模糊匹配。

例如,依照上图配置转发规则及转发组后,如下请求将依次被匹配到不同的转发组中:

  1. example.qloud.com/test1/image/index1.html 由于精确匹配转发组1设置的 URL 规则,则该请求将被转发到转发组1所关联的后端云服务器中,即图中 RS1 和 RS2 的80端口。

  2. example.qloud.com/test1/image/hello.html 由于此请求无法精确匹配第一条规则,因此将继续匹配转发组2中的规则,发现模糊匹配成功。因此该请求将被转发到转发组2所关联的后端云服务器中,图中即 RS2 和 RS3 的81端口。

  3. example.qloud.com/test2/video/mp4/ 由于此请求无法精确匹配到前两条规则,因此将继续向下匹配,直至发现可以模糊匹配转发组 3 中的规则。因此该请求将被转发到转发组3所关联的后端云服务器中,图中即 RS4 的90端口。

  4. example.qloud.com/test3/hello/index.html 由于此请求无法匹配到前三个转发组中的规则,因此将匹配用户配置的最通用规则 Default URL。这时是 Nginx 转发请求给后端应用服务器,如 FastCGI(php),tomcat(jsp),Nginx 作为反向代理服务器存在。

  5. example.qloud.com/test2/ 由于请求无法精确匹配到前三个转发组中的规则,因此将匹配用户配置的通用规则 default URL

  6. 如果用户设置的 URL 规则中,服务不能正常运行,则匹配成功后,不会重定向到其他页面。 例如,客户端请求example.qloud.com/test1/image/index1.html匹配了转发组1的 URL 规则,但此时转发组1的后端服务器运行异常,出现404的页面时,用户进行访问时页面则会显示404,不会跳转到其他页面。

  7. 建议用户设置 Default URL,将其指向服务稳定的页面(如静态页面、首页等),并绑定所有后端云服务器。此时,如果所有规则均没有匹配成功时,系统会将请求指向 Default URL 所在的页面,否则可能会出现404的问题。

  8. 如果用户未设置 Default URL,且所有转发规则都不匹配时,此时访问服务,会返回404。