基于域名或URL路径进行转发

传统型负载均衡CLB的七层监听(HTTPS与HTTP协议)支持配置基于域名或URL路径的转发策略。您可以将来自不同域名或URL路径的请求转发至不同的后端服务器组,合理分配服务器资源。

域名和URL路径转发原理介绍

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实例组成)。例如您可以将所有读请求转发至一组后端服务器上,而将写请求转发至另一组后端服务器上,这样可以更灵活地适配业务需求,合理分配资源。

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

  • 方式一:前端请求中存在域名,则根据域名匹配转发策略。

    • 存在匹配该域名的转发策略,则继续匹配URL路径部分。

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

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

    • 不存在匹配该域名的转发策略,则按照方式二匹配转发策略。

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

    成功匹配到转发策略时,将请求转发至对应的虚拟服务器组;未能匹配到任何转发策略时,将请求转发至此监听配置的服务器组。

前提条件

添加域名或URL路径转发策略

  1. 登录传统型负载均衡CLB控制台

  2. 选择目标CLB实例所属地域。

  3. 实例管理页面,单击目标实例ID链接。

  4. 监听页签,在目标七层监听操作列单击配置转发策略

  5. 转发策略面板,根据以下信息配置转发策略,配置完成后单击添加转发策略

    • 域名:输入要转发的请求域名。

    • URL:输入请求路径。

      说明

      如果请求的URL路径中包含特殊字符,您需要使用URL特殊字符转义编码。例如,如果配置的转发策略使用包含特殊字符“/#/”的URL路径,那么在访问对应的服务时,需要使用特殊字符井号(#)的转义编码“%23”,即请求的URL路径中必须是“/%23/”,这样才能按设定的转发规则转发请求。

    • 虚拟服务器组:选择关联的虚拟服务器组。

    • 备注:输入备注信息。

  6. 可选:单击添加域名添加规则新增一个域名或URL策略。

    一个HTTP或HTTPS监听最多可添加的转发策略个数,请参见使用限制

编辑转发策略

您可以修改转发策略关联的后端服务器。

  1. 登录传统型负载均衡CLB控制台

  2. 选择目标CLB实例所属地域。

  3. 实例管理页面,单击目标实例ID链接。

  4. 监听页签,在目标七层监听操作列单击配置转发策略

  5. 转发策略面板的转发策略列表区域,在目标转发策略的操作列单击编辑选项。

  6. 编辑转发策略面板,修改目标转发策略的备注和虚拟服务器组。

  7. 您可以根据需要打开转发规则高级配置,根据以下信息完成配置,然后单击确定

    高级配置

    说明

    调度算法

    选择调度算法。

    • 加权轮询:权重值越高的后端服务器,被轮询到的次数(概率)也越高。

    • 轮询:按照访问顺序依次将外部请求依序分发到后端服务器。

    开启会话保持

    选择是否开启会话保持。

    开启会话保持功能后,负载均衡会把来自同一客户端的访问请求分发到同一台后端服务器上进行处理。

    HTTP协议会话保持基于Cookie。负载均衡提供了两种Cookie处理方式:

    Cookie处理方式

    • 植入Cookie:您只需要指定Cookie的过期时间。

      客户端第一次访问时,负载均衡会在返回请求中植入Cookie(即在HTTP或HTTPS响应报文中插入ServerId),下次客户端携带此Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器上。

      会话保持超时时间:选择植入Cookie时,输入会话保持的超时时间,

    • 重写Cookie:可以根据需要指定HTTPS或HTTP响应中插入的Cookie。您需要在后端服务器上维护该Cookie的过期时间和生存时间。

      负载均衡服务发现用户自定义了Cookie,将会对原来的Cookie进行重写,下次客户端携带新的Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器。

      Cookie名称:选择重写Cookie时,输入Cookie名称。

    更多信息,请参见配置服务器Cookie

    开启健康检查

    • 健康检查方法:默认为HEAD

    • 健康检查端口:健康检查服务访问后端时的探测端口。

      默认值为配置监听时指定的后端端口。

    • 健康检查路径:用于健康检查页面文件的URI,建议对静态页面进行检查。

    • 健康检查域名(可选):默认使用各后端服务器的内网IP为域名。

    • 正常状态码:选择健康检查正常的HTTP状态码。

      默认值为http_2xx和http_3xx。

    • 健康检查响应超时时间:接收来自运行状况检查的响应需要等待的时间。如果后端ECS在指定的时间内没有正确响应,则判定为健康检查失败。默认为5秒。

    • 健康检查间隔时间:进行健康检查的时间间隔。

      默认为2秒。

    • 健康检查健康阈值:同一LVS节点服务器针对同一ECS服务器,从失败到成功的连续健康检查成功次数。

      可选值2~10,默认为3次。

    • 健康检查不健康阈值:同一LVS节点服务器针对同一ECS服务器,从成功到失败的连续健康检查失败次数。

      可选值2~10,默认为3次。

删除转发策略

  1. 登录传统型负载均衡CLB控制台

  2. 选择目标CLB实例所属地域。

  3. 实例管理页面,单击目标实例的ID链接。

  4. 监听页签,在目标七层监听操作列单击配置转发策略

  5. 转发策略面板的转发策略列表区域,在目标转发策略的操作列单击删除

相关文档