负载均衡支持配置基于域名和路径的转发策略。您可以将来自相同域名不同路径的请求转发给不同的后端服务器组,合理分配服务器资源。

背景信息

说明 只有7层监听(HTTPS/HTTP协议)支持配置转发策略。

本操作以四个部署了Nginx服务器的ECS为例,演示如何通过配置域名加URL转发规则,完成如下表所示的流量转发。

前端请求 流量转发至
www.aaa.com/tom 后端服务器SLB_tom1和SBL_tom2,属于虚拟服务器组TOM。
www.aaa.com/jerry 后端服务器SLB_jerry1和SBL_jerry2,属于虚拟服务器组JERRY。

域名和路径转发介绍

七层负载均衡服务支持配置域名或者URL转发策略,将来自不同域名或者URL的请求转发给不同的ECS处理。

URL转发支持字符串匹配,按照前缀最长匹配原则,例如有/abc和/abcd两个规则,访问/abcde,优先匹配/abcd规则。

域名转发策略支持精确匹配和通配符匹配两种模式:
  • 精确域名:www.aliyun.com。
  • 通配符域名(泛域名): *.aliyun.com和 *.market.aliyun.com

    当前端请求同时匹配多条域名策略时,策略的匹配优先级为:精确匹配高于小范围通配符匹配, 小范围通配符匹配高于大范围通配符匹配,如下表所示。

    模式 请求测试URL 配置的转发域名策略
    www.aliyun.com *.aliyun.com *.market.aliyun.com
    精确匹配 www.aliyun.com × ×
    泛域名匹配 market.aliyun.com × ×
    泛域名匹配 info.market.aliyun.com × ×

您可以在一个监听下添加多条转发策略,每条转发策略关联不同的虚拟服务器组(一个虚拟服务器组由一组ECS实例组成)。例如您可以将所有读请求转发到一组后端服务器上而将写请求转发到另一组后端服务器上,这样可以更灵活地适配业务需求,合理分配资源。

如下图所示,在配置了转发策略后,负载均衡系统将按照以下两种方式匹配策略,转发前端请求:

  • 前端请求中存在域名(domain),则根据域名匹配转发策略。
    • 方式一:存在匹配该域名的转发策略,则继续匹配URL部分。

      若URL部分也能匹配,则将请求转发到对应的虚拟服务器组;若URL部分未能命中该域名下的任何规则,则将请求转发给域名根路径转发策略(转发策略中只配置了域名,没有配置URL)。

      当用户没有为该域名配置根路径转发策略时,将向客户端返回404错误。

    • 不存在匹配该域名的转发策略,则按照方式二匹配转发策略。
  • 方式二:前端请求中不存在域名或者转发策略中不存在与之相匹配的域名,则直接匹配无域名转发策略(转发策略中只配置了URL,没有配置域名)。

    成功匹配到转发策略时,将请求转发到对应的虚拟服务器组;未能匹配到任何转发策略时,将请求转发到负载均衡实例默认服务器组。

转发策略

配置路径转发策略

在配置域名和路径转发策略前,确保您已经:

  1. 已创建一个公网负载均衡实例,详情请参见创建负载均衡实例
  2. 已创建一个七层监听,调度算法为轮询,详情请参见添加HTTP监听添加HTTPS监听
  3. 已创建两个虚拟服务器组TOM和JERRY,详情请参见添加ECS实例作为虚拟服务器
    • TOM虚拟服务器组中已添加服务器SLB_tom1和SBL_tom2,将端口设置为80,权重使用默认值100。
    • JERRY虚拟服务器组中已添加服务器SLB_jerry1和SBL_jerry2,将端口设置为80,权重使用默认值100。

执行下面的操作步骤配置路径转发策略:

  1. 登录负载均衡管理控制台
  2. 在顶部菜单栏选择负载均衡实例的所属地域。
  3. 实例管理页面,单击目标实例的ID链接。
  4. 监听页签下,单击操作列的转发策略
  5. 配置两条转发规则:将来自www.aaa.com/tom的请求转发至TOM虚拟服务器组,以及将来自www.aaa.com/jerry的请求转发至JERRY虚拟服务器组。
    配置转发规则

    参数说明如下:

    • 域名:输入要转发的请求域名。域名只能使用字母、数字、连字符(-)和点号(.)。
    • URL:输入请求路径。路径必须以正斜杠(/)开头,只能包含字母、数字和以下特殊字符。

      -./%?#&

      说明 如果您只想配置域名转发策略,则不需要配置URL。
    • 虚拟服务器组:选择关联的虚拟服务器组。
    • 备注:输入描述。
    说明 一个HTTP或HTTPS监听最多可添加转发策略个数请参见使用限制
  6. 单击添加转发策略
  7. 单击确定
  8. 测试路径转发策略是否配置成功。
    • 在浏览器中输入wwww.aaa.com/jerrry,将返回如下结果。
    • 在浏览器中输入wwww.aaa.com/tom,将返回如下结果。
    • 在浏览器中输入wwww.aaa.com,将返回如下结果。