传统负载均衡CLB默认将所有流量指向监听配置的后端服务器组,可能导致资源分配不均、性能下降和运维复杂。随着业务扩展,这种配置无法满足多样化需求。通过配置CLB监听的转发策略,可以将流量引导至指定后端服务器组,实现流量的精细化管理和服务隔离,从而提升资源利用率,保障服务稳定性并优化用户体验。
功能简介
CLB监听的转发策略允许您基于域名和URL路径将接收到的客户端请求精准地分配到不同的后端服务器上,以实现高效、合理的流量分发。
关键特性
域名转发策略
匹配模式:支持精确匹配与通配符匹配(包括单级与多级通配符),如
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
×
×
✓
URL路径转发
匹配逻辑:基于URL路径的前缀最长匹配,如配置/abc与/abcd,请求/abcde时将优先匹配/abcd规则。
策略组合:可在同一监听下配置多条策略,结合域名与URL路径,实现复杂流量分发场景,如区分读写请求至不同服务器组。
工作原理
您可以在一个监听下添加多条转发策略,每条转发策略关联不同的虚拟服务器组。匹配策略如下图所示。当您没有配置任何转发策略的时候,负载均衡统一将请求转发至监听配置的默认服务器组。 当您配置了转发策略的时候,负载均衡会优先匹配转发策略中的域名或者路径,如果可以匹配到,则转发至转发策略中的服务器组,如果无法匹配到,则转发至监听配置的默认服务器组。
适用场景
微服务架构:在微服务架构设计中,应用程序由多个独立的子服务组成,这些子服务各自部署在不同的实例或容器上,通过协同工作完成整体应用功能。采用基于路径的智能路由机制,确保客户端请求能够被精确地分配至处理对应业务逻辑的服务实例。例如,在电商平台上,用户的认证请求、订单处理请求和支付请求,会依据HTTP请求中的URL路径分别被智能路由到认证服务、订单服务和支付服务的对应实例上处理。
读写分离:在处理高并发和对数据一致性要求严格的场景下,如订单处理服务,采用读写分离策略进一步优化服务性能与数据安全性。读操作和写操作分别由不同的数据库实例或集群处理。读取操作被路由到读数据库,而写入操作则定向到写数据库。
多租户应用:在多租户应用的场景中,为了实现不同租户间服务的隔离与个性化,需要为不同的租户提供独立的环境。例如,通过创建租户专属的子域名来区分不同租户的入口,同时结合路径来进一步细化服务功能。这样,不仅可以确保每个租户的数据安全和隐私,还能让每个租户拥有定制化的用户体验和界面。
使用限制
仅7层监听HTTP或HTTPS支持配置转发策略。
转发策略所指向的后端服务器组仅支持虚拟服务器组。
一个HTTP或HTTPS监听可添加的域名和URL转发规则数量不超过40,具体请参考使用限制。
场景示例
某教育平台希望通过单一域名提供多样化的在线学习服务,包括视频课程和在线题库。视频服务需要高带宽和流媒体处理能力,而题库服务则需要计算密集和快速响应。最初,所有服务在一个服务器组上部署,导致资源分配不均,在视频高峰期影响题库访问速度,用户体验受损。尤其是在用户访问量激增时,服务器负载过高,无法保证服务稳定运行。
在这种场景下,平台利用阿里云CLB配置了相同域名下不同URL路径的流量转发策略。如下图所示,/video/的请求转发至视频服务器组RS1,确保视频服务获得足够的带宽和处理能力。/exam/的请求转发至题库服务器组RS2,优化计算资源以快速响应查询和提交操作。通过这种方式,实现了精准路由,确保每个子服务都能高效、独立地运行。
前提条件
您已在华东2(上海)地域创建了专有网络VPC1,并分别在可用区E和可用区G创建了一个交换机VSW1和VSW2。
您已分别在VSW1和VSW2创建了ECS01和ECS02实例,且ECS01和ECS02实例中部署了应用服务。注意安全组中需要放通应用服务所使用的端口号。
本文ECS01和ECS02部署测试应用示例如下:
您已创建CLB实例。
您已通过创建和管理CLB虚拟服务器组为CLB实例创建了2个虚拟服务器组RS1和RS2,并在RS1中添加服务器ECS01,在RS2中添加服务器ECS02。后端服务器端口的设置与部署应用服务的端口保持一致,本文使用Nginx服务的默认端口号80。
操作步骤
步骤一:配置转发策略
在顶部菜单栏,选择目标CLB实例所属地域。
在实例管理页面,单击目标实例ID链接。
在监听页签,找到目标监听,然后在目标监听操作列单击配置转发策略。
在添加转发策略面板,根据以下信息配置转发策略,配置完成后单击添加转发策略。
域名:您已经注册并完成备案的自有域名。
URL:您的请求路径。
说明如果请求的URL路径中包含特殊字符,您需要使用URL特殊字符转义编码。例如,如果配置的转发策略使用包含特殊字符“/#/”的URL路径,那么在访问对应的服务时,需要使用特殊字符井号(#)的转义编码“%23”,即请求的URL路径中必须是“/%23/”,这样才能按设定的转发规则转发请求。
步骤二:配置健康检查
HTTP健康检查默认由负载均衡系统向该服务器应用配置的缺省首页发起HTTP请求。 如果您用来进行健康检查的页面并不是应用服务器的缺省首页,需要指定具体的检查路径。
在实例管理页面,找到目标CLB实例,然后单击目标实例ID。
在监听页签,在监听的操作列单击配置转发策略。
在转发策略面板,转发策略列表下,找到目标转发规则,单击编辑。若有多条转发规则需要配置可重复此操作。
在编辑转发策略面板,开启转发规则高级配置,配置健康检查路径,此处可配置转发规则中的URL路径,以URL为/video为例,需要完成如下配置。
步骤三:设置域名解析
对于非阿里云注册域名,需先将域名添加到云解析控制台,才可以进行域名解析设置。
如果您的CLB实例为私网类型,需先为其绑定弹性公网IP(EIP),随后配置A记录将域名解析指向该EIP实现公网访问。
在左侧导航栏,选择
。在实例管理页面,选择目标实例,并复制目标实例的服务地址。
执行以下步骤添加A解析记录。
登录域名解析控制台。
在权威域名解析页面,找到目标域名,在操作列单击解析设置。
在解析设置页面,单击添加记录。
在添加记录面板配置以下信息,其他参数可保持默认值或根据实际情况修改,完成后单击确定。
配置
说明
记录类型
在下拉列表中选择A。
主机记录
您的域名的前缀。
说明创建域名为根域名时,主机记录为@。
记录值
输入域名对应的A地址,即您复制的CLB实例的服务地址。
步骤四:访问测试
使用浏览器访问http://<域名>/<URL>/
查看响应结果,验证是否将请求路由到对应的服务器组。
访问视频服务http://www.example.com/video/,查看请求是否路由到视频服务虚拟服务器组RS1。
访问题库服务
http://www.example.com/exam/
,查看请求是否路由到题库服务虚拟服务器组RS2。
相关问题
CLB同域名不同路径的转发策略是否支持路径的重定向?
不支持。CLB转发策略为流量的转发。如果您需要配置转发路径重定向可考虑使用应用型负载均衡ALB,具体可参考配置监听转发规则。
配置多路径转发后,健康检查状态为什么异常了?
负载均衡在执行健康检查时,不关注转发策略,而是按照监听器上配置的健康检查路径(默认使用根路径)进行检查。当您的后端服务需要根据不同的路径来响应不同的请求时,如果健康检查仍然按照默认或不匹配的路径进行,就可能导致健康检查失败。您可以根据需要在监听的转发规则中配置健康检查路径。
配置域名转发策略后会产生什么计费项吗?
配置域名转发策略本身不会产生计费项,如果您的CLB实例为私网类型,绑定EIP变更为公网CLB实例,会产生公网网络费。具体计费可参考CLB产品计费。
相关文档
如果您需要为CLB配置多个HTTPS域名,可参考单CLB实例配置多域名HTTPS网站。
若您当前的应用系统正采用HTTP协议进行通信,有意实现向HTTPS安全协议的平稳迁移,可参考使用CLB将HTTP访问重定向至HTTPS。
如果您需要将CLB平滑迁移到ALB,可参考CLB七层监听一键迁移ALB最佳实践和CLB七层监听手动迁移ALB最佳实践。