文档中心 负载均衡 负载均衡监听器 应用型 CLB 转发规则及转发组配置说明

应用型 CLB 转发规则及转发组配置说明

最近更新时间:2018-10-08 17:39:32

业务流程图

公网应用型 CLB 的七层业务流程及四层业务流程如下所示:

使用公网应用型负载均衡的七层转发 HTTP / HTTPS 时,在一个 CLB 实例的监听器中新建转发规则,用户可以添加一个对应的域名。

  • 当用户只建立了一条转发规则时,访问 VIP + URL 可以对应相应的转发规则,并正常访问服务。
  • 当用户建立了多条转发规则时,将提示用户,此时访问 VIP + URL 不能保证访问到哪个域名 + URL,需要用户直接访问域名 + URL 来确保具体的转发规则生效。(即用户配置多条转发规则时,同一个 VIP 对应了多条域名,此时不建议通过 VIP + URL 访问服务,而应该通过具体的域名 + URL 访问服务。)

转发规则配置说明

域名配置规则

公网应用型负载均衡,七层监听器的转发规则配置域名时,支持正则表达式,长度限制为 1 - 80。

  • 非正则的域名支持的字符集如下:
    a-z 0-9 . -
  • 通配的域名,目前只支持
    *.example.com 或者 www.example.* 的形式,且单个域名中只支持 * 出现一次。
  • 域名的正则表达式中不支持的字符集如下:
    " { } ; ~ ' ` `空格
  • 应用型负载均衡支持的正则域名举例如下:
    ~^www\d+\.example\.com$

健康检查配置规则

当用户填写域名为通配域名时,需要指定某一固定域名(非正则)为健康检查域名。该健康检查域名配置支持的字符集如下:
a-z 0-9 . -
公网应用型负载均衡,七层监听器配置健康检查的路径时,默认 /,必须以 / 开头。长度限制为 1 - 80。暂不支持正则表达,建议指定某个固定 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 开头的域名

    注意:
    如果请求的域名匹配不到转发规则,则会默认匹配到第一个域名的配置。

  4. 在转发规则中配置域名,并在转发组中配置模糊匹配的 URL。使用前缀匹配,可在最后加入通配符 $ 进行完整匹配。
    例如,客户通过配置转发组 URL ~* .(gif|jpg|bmp)$,希望匹配任何以 gif、 jpg 或 bmp 结尾的文件。
  5. 建议用户设置默认访问域名,当监听器中所有域名均没有匹配成功时,系统会将请求指向默认访问域名,让默认规则可控。设置默认访问域名的操作如下图所示:

转发组 URL 匹配规则说明

URL 配置规则

应用型负载均衡七层监听器转发路径 URL,默认 /,必须以 / 开头。长度限制为 1 - 80。

  • URL 支持正则表达,用如下方法判断:
    • = 开头表示精确匹配。
    • ^~ 开头表示 uri 以某个常规字符串开头,不是正则匹配。
    • ~开头表示区分大小写的正则匹配。
    • ~* 开头表示不区分大小写的正则匹配。
    • / 通用匹配, 如果没有其它匹配,任何请求都会匹配到。
  • 非正则的 URL 路径,以 / 开头,支持的字符集如下:
    a-z A-Z 0-9 . - / = ?
  • 正则的 URL,不支持的字符集如下:
    " { } ; \ ` ~ ' 空格

URL 匹配规则示例

  1. 匹配规则:优先精确匹配,之后依照规则模糊匹配。
    举例:依照下图配置转发规则及转发组后,如下几个请求将依次被匹配到不同的转发组中:
    a. example.qloud.com/test1/image/index1.html 由于精确匹配转发组 1 设置的 URL 规则,则该请求将被转发到转发组 1 所关联的后端云服务器中,图中即 RS1 和 RS2 的 80 端口。
    b. example.qloud.com/test1/image/hello.html 由于此请求无法精确匹配第一条规则,因此将继续匹配转发组 2 中的规则,发现模糊匹配成功。因此该请求将被转发到转发组 2 所关联的后端云服务器中,图中即 RS2 和 RS3 的 81 端口。
    c. example.qloud.com/test2/video/mp4/ 由于此请求无法精确匹配到前两条规则,因此将继续向下匹配,直至发现可以模糊匹配转发组 3 中的规则。因此该请求将被转发到转发组 3 所关联的后端云服务器中,图中即 RS4 的 90 端口。
    d. example.qloud.com/test3/hello/index.html 由于此请求无法匹配到前三个转发组中的规则,因此将匹配用户配置的最通用规则 default URL。这个时候应该是 nginx 转发请求给后端应用服务器,比如 FastCGI(php),tomcat(jsp),nginx 作为方向代理服务器存在
    e. example.qloud.com/test2/ 由于请求无法精确匹配到前三个转发组中的规则,因此将匹配用户所配置的通用规则 default URL。
  2. 如果用户设置的 URL 规则中,服务不能正常运行,则匹配成功后,不会重定向到其他页面。
    举例:如客户端请求 example.qloud.com/test1/image/index1.html 匹配了转发组 1 的 URL 规则,但此时转发组 1 的后端服务器运行异常,出现 404 的页面时,用户进行访问时页面则会显示 404,不会跳转到其他页面。
  3. 建议用户设置 default URL,将其指向服务稳定的页面(如静态页面、首页等),并绑定所有后端云服务器。此时,如果所有规则均没有匹配成功时,系统会将请求指向 default URL 所在的页面,否则可能会出现 404 的问题。
  4. 如果用户未设置 default URL,且所有转发规则都不匹配时,此时访问服务,会返回 404。