告别单点故障:阿里云CLB负载均衡从入门到实战
引言:一台服务器不够用怎么办?
假设你做了一个网站,刚开始只有几十个人访问,一台ECS服务器完全够用。但某天你的网站突然火了------流量暴涨,服务器CPU飙到100%,网站卡得打不开,甚至直接宕机。更糟糕的是,这台服务器恰好在这时候出了硬件故障,你的网站彻底"挂"了,用户完全访问不了。
这就是典型的单点故障问题------所有鸡蛋放在一个篮子里,篮子一旦出问题,全军覆没。
怎么解决?答案是:多买几台服务器,然后把流量均匀地分给它们 。谁来做这个"流量分发"的工作?就是今天的主角------阿里云CLB(传统型负载均衡) 。
一、什么是CLB?
CLB的全称是Classic Load Balancer(传统型负载均衡) ,它是阿里云提供的一种流量分发控制服务。
用人话说就是:CLB像一个"流量调度员" 。用户访问你的网站时,请求先到达CLB,CLB再根据你设定的规则,把请求分发给后端的多台服务器。这样一来:
-
流量分摊:多台服务器共同承担访问压力,不会让某一台累垮
-
故障自动切换:某台服务器宕机了,CLB自动把流量转到其他健康的服务器上,用户几乎无感知
-
弹性扩展:业务增长了,随时加服务器;流量下降了,随时减服务器
一句话总结:CLB让你用多台普通服务器,拼出一台"超级服务器"的效果。
CLB由三部分组成:
| 组成部分 | 说明 |
|---|---|
| CLB实例 | 一个运行的负载均衡服务,拥有一个固定的服务地址(IP或域名),所有请求先到达这里 |
| 监听(Listener) | 负责"听"什么类型的请求(比如HTTP的80端口、HTTPS的443端口),并把请求转给后端服务器 |
| 后端服务器 | 真正处理业务请求的ECS实例,也就是你的应用服务器 |
CLB的核心优势:
-
高可用:采用全冗余设计,没有单点故障,支持同城容灾,可用性高达99.95%
-
可扩展:随时增减后端服务器数量,业务增长无压力
-
低成本:相比购买昂贵的硬件负载均衡设备,成本可下降60%
-
安全:结合云盾,可提供5Gbps的防DDoS攻击能力
-
高并发:单实例最大支持100万并发连接
二、CLB的工作原理(小白也能看懂)
CLB背后到底是怎么工作的?我们用一张图来理解:

原理其实很简单:
CLB采用集群部署,不是一台机器在干活,而是一群机器在协作。
四层(TCP/UDP)负载均衡 :由LVS(Linux Virtual Server)+ Keepalived实现。LVS是一个高性能的Linux负载均衡软件,它工作在网络的"传输层",只关心IP地址和端口号,不关心具体传输的内容。比如你的应用用的是TCP协议(如数据库连接),就走这条路。
七层(HTTP/HTTPS)负载均衡 :由Tengine 实现。Tengine是淘宝网基于Nginx开发的高性能Web服务器,它工作在"应用层",能看懂HTTP协议的内容,可以根据URL路径、域名等信息来做更精细的流量分发。比如/api/*的请求分到一组服务器,/static/*的请求分到另一组。
举个例子:四层像快递分拣中心,只看包裹上的地址(IP和端口),按地址分发;七层像超市的导购,不仅看你的购物清单,还能根据你要买的东西(URL路径)给你指路到不同的货架。
集群的优势:LVS集群内的每台机器都会将会话同步给其他机器。如果某一台LVS机器故障了,流量会自动转移到其他正常的机器上,用户完全感知不到。
三、环境准备
在开始创建CLB之前,需要做好以下准备:
1. 准备后端服务器
CLB需要至少2台ECS实例作为后端服务器。建议满足以下条件:
-
与CLB在同一个地域(Region)
-
在同一个专有网络VPC下
-
已经部署好你的应用(比如Web服务,监听80端口)
小贴士:如果还没有ECS,可以先创建2台按量付费的ECS,安装Nginx并启动服务,用于测试。
2. 账号与权限
建议使用RAM子账号进行操作,并授予AliyunSLBFullAccess权限。
四、创建CLB实例
步骤一:进入CLB控制台
登录阿里云控制台,在顶部搜索框输入"传统型负载均衡CLB",进入产品控制台。
步骤二:创建实例
-
在实例列表页面,点击 「创建实例」
-
配置以下关键参数:
| 配置项 | 说明 | 建议值 |
|---|---|---|
| 付费类型 | 按量付费适合测试,包年包月适合生产 | 按量付费 |
| 地域 | 必须与ECS在同一个地域 | 如:华东1(杭州) |
| 实例类型 | 公网:自动分配公网IP,用户从互联网访问 | 公网 |
| 规格 | 小型规格适合入门场景 | slb.s1.small |
- 点击 「立即购买」 ,完成创建
创建完成后,CLB实例会获得一个公网IP地址,这就是用户访问的统一入口。
五、配置CLB(添加监听和后端服务器)
实例创建好了,但还不能直接用------需要配置监听 和后端服务器。
步骤一:打开监听配置向导
在实例管理页面,找到刚刚创建的CLB实例,点击操作列的 「监听配置向导」。
步骤二:配置监听
监听决定了CLB"听"什么类型的请求。
以最常见的HTTP监听为例:
| 配置项 | 说明 | 示例值 |
|---|---|---|
| 监听协议 | 选择HTTP(七层)或TCP(四层) | HTTP |
| 监听端口 | CLB监听的端口,用户访问时用这个端口 | 80 |
| 调度算法 | 流量分配策略 | 轮询(RR)------按顺序依次分发 |
配置完成后,点击 「下一步」 。
步骤三:添加后端服务器
这一步是把你的ECS实例加入到CLB的服务池中。
-
在"后端服务器"页面,选择 「默认服务器组」
-
点击 「添加」 ,勾选你想要加入的ECS实例
-
配置每个ECS的端口 和权重:
| 配置项 | 说明 |
|---|---|
| 端口 | ECS上应用监听的端口(如Nginx默认80) |
| 权重 | 数值越高,被分配到的流量越多 |
权重的作用:假设ECS01权重为100,ECS02权重为50,那么ECS01收到的请求大约是ECS02的2倍。如果你想临时让某台服务器"休息"(比如要升级维护),可以把它的权重设为0,CLB就不会再给它转发请求了。
- 点击 「下一步」
步骤四:配置健康检查(重要!)
健康检查是CLB的"自动体检"功能。
CLB会定期向后端服务器发送探测请求,检查服务器是否"活着"。如果某台服务器连续几次健康检查失败,CLB就认为它"病了",自动停止给它转发流量;等它恢复健康了,CLB再自动把它加回来。
| 配置项 | 说明 | 建议值 |
|---|---|---|
| 健康检查 | 是否开启 | 开启(强烈建议) |
| 健康检查协议 | HTTP监听建议用HTTP | HTTP |
| 健康检查路径 | 检查哪个URL | /(根路径)或/health |
| 响应超时时间 | 等待响应的最长时间 | 5秒 |
| 健康检查间隔 | 多久检查一次 | 2秒 |
| 不健康阈值 | 连续失败几次判定为不健康 | 3次 |
| 健康阈值 | 连续成功几次判定为恢复健康 | 3次 |
注意 :健康检查使用的源IP地址段是
100.64.0.0/10,请确保后端ECS的安全组和防火墙没有屏蔽这个地址段。
配置完成后,点击 「下一步」 ,确认信息后点击 「提交」 。
六、调试与验证
配置完成后,怎么确认CLB正常工作了呢?
验证一:访问CLB的公网IP
在浏览器中输入CLB实例的公网IP地址,多次刷新页面:
-
如果后端ECS部署的是不同的页面内容(比如ECS01显示"Server 1",ECS02显示"Server 2"),你会看到页面在几台服务器之间轮流切换
-
这说明CLB已经成功将请求分发到了不同的后端服务器上
验证二:模拟故障(高可用测试)
-
登录ECS控制台,手动停止其中一台ECS实例
-
再次访问CLB的公网IP
-
你会发现:网站依然可以正常访问!因为CLB检测到这台ECS"挂了",自动把流量全部转给了其他健康的服务器
-
重新启动这台ECS,等它恢复健康后,CLB会自动把它加回来
这个测试完美验证了CLB的高可用能力------单台服务器故障不影响整体服务。
验证三:查看监控数据
在CLB控制台的实例详情页,可以查看流量监控数据,包括:
-
入流量和出流量
-
请求数量
-
后端服务器的健康状态
这些数据可以帮助你了解业务的访问情况,及时发现问题。
七、CLB使用小贴士
1. 四层和七层怎么选?
| 场景 | 推荐 |
|---|---|
| TCP/UDP协议的应用(如数据库、游戏) | 四层监听(TCP/UDP) |
| HTTP/HTTPS的Web应用,需要路径转发 | 七层监听(HTTP/HTTPS) |
| 简单Web应用,不需要高级路由 | 两者皆可 |
2. 会话保持(Session Stickiness)
如果你的应用需要把同一个用户的请求始终发到同一台服务器(比如用户登录状态保存在本地Session),可以开启会话保持功能。CLB会记住这个用户,后续请求都转发到同一台ECS。
3. 后端服务器要"长一样"
CLB后端的多台ECS应该部署相同的应用,这样才能保证用户无论被分到哪台服务器,得到的服务都是一致的。
4. 安全组记得放行
CLB的健康检查和流量转发需要访问ECS的端口,请确保ECS的安全组放行了对应的端口(如80、443等)。
5. 不要用公网IP直接访问后端ECS
在生产环境中,建议后端ECS不要绑定公网IP,只通过CLB对外提供服务。这样既安全(外部无法直接访问ECS),又省钱(ECS到CLB走内网,不产生公网流量费用)。
总结
阿里云CLB是一款简单、强大、高可用的流量分发服务。通过本文,你应该已经掌握了:
-
CLB是什么:一个将流量分发到多台后端服务器的"流量调度员"
-
工作原理:四层基于LVS+Keepalived,七层基于Tengine,集群部署保证高可用
-
核心价值:消除单点故障、提升系统可用性、弹性扩展应对流量波动
-
创建与配置:创建CLB实例 → 配置监听 → 添加后端服务器 → 开启健康检查
-
验证方法:访问CLB公网IP测试分发效果,模拟ECS故障测试高可用
无论是个人博客、企业官网,还是高并发的电商平台,CLB都是构建高可用架构的基石。记住:永远不要把所有的流量压力压在一台服务器上------用CLB,让你的业务稳如泰山