CLB服务器组

更新时间:
复制 MD 格式

监听基于配置的转发策略,将业务请求路由至指定的服务器组。服务器组按照调度算法,将业务流量分发至相应的后端服务器。

工作原理

服务器组类型

服务器组类型

默认服务器组

虚拟服务器组

主备服务器组

类型说明

每个CLB实例自带一个默认服务器组

(有且仅有一个)

用户自行创建与管理

用户自行创建与管理

后端服务器数量

一个或多个

一个或多个

两个(一主一备)

特点

  • 实例共享:实例全局共享,所有监听共享使用

  • 端口限制:同一监听下的所有后端服务器必须使用相同端口

  • 业务灵活:不同监听可绑定不同服务器组

  • 多端口:同一个虚拟服务器组,支持配置不同端口的后端服务器

  • 高级路由:结合域名和URL路径规则,实现更精细的流量分发

  • 业务灵活:不同监听可绑定不同服务器组

  • 高可用:主备自动切换

  • 多端口:同一个主备服务器组,支持配置不同端口的后端服务器

适用场景

简单架构,所有请求转发到同一组后端服务器

复杂架构,例如按照域名/端口分发业务请求

数据库、核心API 等固定主备模式的业务

支持监听类型

TCP/UDP/HTTP/HTTPS

TCP/UDP/HTTP/HTTPS

TCP/UDP

权重配置

调度算法决定 CLB 如何将收到的请求分发到后端的多个服务器。权重则是在支持加权的算法中,控制每台服务器流量分配比例的参数。

  • 生效范围:使用支持加权的调度算法。轮询算法不生效。

  • 取值范围:0-100,默认值为100。

  • 权重为0的行为:服务器不再接收新的请求流量。但已建立的连接会继续处理直至正常断开,健康检查也会继续进行。常用于服务器的优雅下线。

  • 权重变更的生效范围:权重变更只对新建连接生效,不影响已建立的连接。在长连接场景下,调整权重后流量变化会比较缓慢。

  • 流量分配比例:在支持加权的调度算法(如加权轮询 WRR)下,各后端服务器获得的流量比例与其权重比例相同。例如,服务器组中现有一台权重为 100 的服务器,再添加一台权重为 1 的新服务器,新服务器每 101 次请求仅被调度约 1 次(占比不到 1%)。

重要

当服务器组中已有高权重(如 100)的后端服务器时,新添加的低权重(如 1)服务器可能长时间收不到可见的调度流量。这是 WRR 算法按权重比例分配流量的正常行为——在低流量场景下,低权重服务器每被调度一次所需等待的请求数更多,可能需要较长时间才能观察到流量。建议新添加后端服务器时,初始权重不低于 10,待确认服务器正常接收流量后,再根据业务需要逐步调整权重值。

服务高可用

开启 CLB 健康检查,定期发送请求来确认服务器的状态。

  • 健康检查成功:服务器状态正常,CLB 会将流量转发给该服务器。

  • 健康检查失败:服务器状态异常,CLB 会停止向该服务器转发任何新的请求流量,直至其恢复正常。

CLB 健康检查使用 100.64.0.0/10 网段,请确保后端服务器的 iptables 或其他第三方安全软件未屏蔽此网段,否则健康检查会失败,导致业务中断。

主备服务器依赖健康检查进行主备切换:

  • 主服务器健康检查失败后,流量将切换到备服务器。由于备服务器默认不做健康检查,需要用户自行确保备服务器的可用性,保证切换后可用。

  • 主备服务器的切换时间取决于设置的健康检查响应超时时间,当主机健康检查恢复之后流量会自动切换至主机。

适用范围

  • 关联关系:

    • 监听与服务器组是 CLB 实例维度的资源。不同 CLB 实例的监听、服务器组信息不互通。

    • 一个服务器组能同时被多个监听绑定,但是一个监听只能同时绑定一个服务器组。

    • CLB 四层监听不支持ECS实例同时作为后端服务器和客户端。如有需求,可使用七层监听。

  • 挂载后端服务器:

    • CLB 仅支持挂载同账号、同地域的后端服务器。

      • 私网 CLB 实例:只能挂载 CLB 所属 VPC 内的后端服务器。

      • 公网 CLB 实例:添加多个后端服务器必须属于同一个 VPC。

    • CLB 所有类型服务器组均支持挂载如下资源:云服务器ECS、弹性网卡ENI、弹性容器ECI。

      • 仅支持添加已经绑定至ECS的弹性网卡。弹性网卡的主私网IP及辅助私网IP均可以添加。

    • ECS 作为后端服务器,进行热迁移时,可能导致CLB长连接断开,重新连接后即可恢复。需确保应用程序具备自动重连机制。

  • 配置可修改性:

    配置可修改性

    增删服务器组

    修改端口

    修改权重

    默认服务器组

    不支持

    首次创建监听并关联后,端口不可修改

    支持

    虚拟服务器组

    支持

    支持

    支持

    主备服务器组

    支持

    不支持

    主备角色不支持修改

配置服务器组

控制台

默认服务器组

  1. 无需创建,每个CLB实例自带一个默认服务器组。

  2. 添加服务器:

    1. 前往CLB - 实例管理页面,单击目标实例 ID,选择默认服务器组页签,单击添加

      • 设置服务器类型资源组,筛选可用资源。

      • 如需添加弹性网卡 ENI,需先打开高级模式,并单击已绑定弹性网卡的ECS实例右侧的加号图标,找到目标弹性网卡。勾选需要绑定的弹性网卡,可选择IP地址

    2. 配置端口与权重:

      • 配置端口:选择监听页签,单击添加监听。在后端服务器向导界面,设置默认服务器组的服务器端口,同一监听下默认服务器组内的不同服务器的端口必须相同。

        仅支持添加监听时指定端口,后续无法修改。
      • 配置权重:设置已选服务器的权重

虚拟服务器组

  1. 前往CLB - 实例管理页面,单击目标实例 ID,选择虚拟服务器组,单击创建虚拟服务器组

  2. 添加服务器:

    • 设置服务器类型资源组,筛选可用资源。

    • 如需添加弹性网卡 ENI,需先打开高级模式,并单击已绑定弹性网卡的ECS实例右侧的加号图标,找到目标弹性网卡。勾选需要绑定的弹性网卡,可选择IP地址

  3. 配置已选服务器的端口权重。选择添加端口,可以为同一个后端服务器配置多个不同的端口。

主备服务器组

  1. 前往CLB - 实例管理页面,单击目标实例 ID,选择主备服务器组,单击创建主备服务器组

  2. 添加服务器:

    • 设置服务器类型资源组,筛选可用资源。

    • 如需添加弹性网卡 ENI,需先打开高级模式,并单击已绑定弹性网卡的ECS实例右侧的加号图标,找到目标弹性网卡。勾选需要绑定的弹性网卡,可选择IP地址

    • 仅支持添加 2 台后端服务器。

  3. 配置已选服务器的端口,选择添加端口,可以为同一个后端服务器配置多个不同的端口。添加后,选择主机,配置主备关系。

API

默认服务器组

虚拟服务器组

主备服务器组

常见问题

CLB实例处于运行中是否可调整ECS数量?

  • 默认服务器组、虚拟服务器组:支持在任意时刻增加或减少负载均衡的后端ECS实例数量,且支持不同ECS实例之间的切换。为保障服务稳定,确保在执行操作前已开启健康检查,且后端至少有一台正常运行的ECS实例。

  • 主备服务器组:不支持调整。

后端ECS实例的操作系统是否可以不同?

可以不同。

CLB 不限制后端 ECS 实例的操作系统,只要确保应用服务部署相同且数据一致即可。建议使用相同的操作系统,以便于统一管理和维护。

可以使用不同地域的ECS实例作为后端服务器吗?

CLB 不支持直接挂载跨地域的后端服务器。若需实现跨地域部署,可选择以下方案:

为什么有100开头的IP在频繁访问ECS实例?

请求来自负载均衡系统的健康检查和可用性监控。

  • 来源:阿里云保留地址段 100.64.0.0/10

  • 安全性:该网段由阿里云保留,其他用户无法分配,不存在安全风险。

  • 配置建议:请确保后端服务器的 iptables 或其他第三方安全软件未屏蔽该网段,以确保服务可用性。

如健康检查异常,可参见 如何排查健康检查异常?

ECS实例上没有配置压缩,为什么从CLB返回的HTTP响应却被压缩了?

  • 原因:CLB 监听配置中开启了 Gzip 压缩,且客户端浏览器支持压缩。

  • 操作:如需关闭,请在 CLB 控制台的监听配置中关闭 Gzip 压缩功能,或改用 TCP 监听。

ECS实例使用了HTTP 1.0是否支持chunked transfer传输编码?

支持。

为什么CLB后端ECS实例频繁收到User-AgentKeepAliveClient的请求?

  • 现象:后端 ECS 收到大量来自内网 IP、User-AgentKeepAliveClient的 GET 请求。

  • 原因:监听协议为 TCP,但健康检查协议配置为 HTTP。TCP 监听使用 HTTP 健康检查时,默认使用 GET 方法。

  • 解决:将监听协议和健康检查协议统一(如都使用 TCP 或都使用 HTTP)。

默认服务器组下的服务器端口支持修改吗?

不支持直接修改。

  • 限制:默认服务器组的端口仅能在创建监听时设置,且同一监听下的所有后端服务器端口必须一致。

  • 解决:如需为同一监听配置不同的后端端口,请使用虚拟服务器组。

CLB四层监听支持ECS实例同时作为后端服务器和客户端?

不支持,上述配置会导致访问环路。

替代方案:

为什么CLB后端存在大量TIME-WAIT连接,而ALB后端只有少量?

传统型负载均衡CLB和应用型负载均衡ALB在与后端服务器交互时,采用的连接机制不同。

  • 传统型负载均衡CLB:默认使用HTTP短连接。CLB将请求转发给后端服务器时,会在HTTP头部插入Connection: close字段。当后端服务器处理完该请求后,会根据此头部主动发送FIN包断开连接,每次断开连接都会进入TIME-WAIT状态(默认60秒),高并发场景下会快速积累大量TIME-WAIT连接。

  • 应用型负载均衡ALB:默认支持HTTP长连接(keep-alive)。单个TCP连接可复用处理多个请求,长连接开启情况下会减少连接断开次数,因此减少了TIME-WAIT连接。

如需减少 TIME-WAIT 连接的积累,可选择以下方案:

  • 改用 CLB 四层(TCP)监听。四层健康检查会在握手成功后主动发送 RST 数据包断开连接,不会进入 TIME-WAIT 状态。

  • 迁移至应用型负载均衡 ALB,利用其默认的 HTTP 长连接复用机制。

为什么后端服务器之间的流量分配不均衡?

常见原因

说明

排查与解决方法

会话保持

开启会话保持后,同一客户端的请求会固定转发到同一台后端服务器。当客户端数量较少时(如使用少量客户端进行压测),流量容易集中在个别服务器上。

检查是否开启了会话保持,评估业务是否确实需要。

长连接

已建立的长连接不会因权重调整而重新分配。长连接场景下,调整权重后流量变化会比较缓慢。

  • 在业务低峰期进行扩容或权重调整,等待旧连接自然关闭。

  • 确保后端服务器的 TCP Keepalive 配置一致,避免连接在部分服务器上堆积。

健康检查失败或波动

个别后端服务器健康检查失败,无法接受请求;或健康检查状态频繁在正常与异常之间切换,造成流量分配不稳定。

  • 查看健康检查日志,确认是否存在状态波动。

  • 适当增大健康检查间隔和不健康阈值,减少误判。

  • 确认健康检查的响应码配置正确。

总体请求数较少

查看CLB的监控信息。如果总体的请求数较少,轻微的请求分配不均衡属于正常现象。

请求量增大后观察流量分配是否趋于均衡。如果在大量请求下仍不均衡,请排查其他原因。

权重配置不当

各服务器的权重设置与其实际处理能力不匹配,导致部分服务器过载而其他服务器闲置。

  • 确认使用了支持加权的调度算法(轮询算法忽略权重)。

  • 根据后端服务器的实际处理能力合理设置权重。

一致性哈希 (CH) 调度算法

当监听配置了基于源 IP 的一致性哈希 (CH) 调度算法时,相同源 IP 的请求始终被分配到同一后端服务器。在客户端数量较少或源 IP 集中的场景下,可能导致部分后端服务器无流量。

登录 CLB 控制台,在实例详情页点击监听标签,点击对应监听进入详情,查看调度算法是否为一致性哈希 (CH)。如果是,可考虑切换为加权轮询 (WRR) 或轮询 (RR) 以改善流量分配。

如何安全地从 CLB 移除后端 ECS 实例?

直接移除 ECS 可能造成业务闪断。建议先将该 ECS 的权重修改为 0,待已建立的连接处理完毕后再执行移除。权重为 0 的具体行为说明,请参见上文权重配置章节。

如果移除 ECS 后仍有持续的业务请求,可从以下方面排查:

  • 该 ECS 是否同时加入了其他 CLB 实例。

  • 该 ECS 自身是否对外提供其他服务,可使用 netstat 命令查看端口监听情况。

新增后端服务器后为什么没有流量转发?

CLB 新增后端服务器后没有流量转发到该服务器,可从以下几个方面排查:

  • 健康检查未通过:后端服务器的端口不通或应用未监听对应端口,会导致健康检查失败,CLB 不会向该服务器转发流量。请在 CLB 控制台确认该服务器的健康检查状态是否正常,并检查后端服务器上的端口监听和应用运行情况。如健康检查异常,可参见 如何排查健康检查异常?

  • 权重设置为 0:权重为 0 的服务器不会接收新的请求流量。请检查该服务器在服务器组中的权重配置,确认权重值大于 0。权重的详细说明请参见上文权重配置章节。

  • 添加到了错误的服务器组:CLB 的每个监听绑定了特定的服务器组(默认服务器组或虚拟服务器组)。如果新增的服务器被添加到了监听未绑定的服务器组中,则该服务器不会收到对应监听的流量。请确认目标监听实际绑定的服务器组,并将服务器添加到正确的组中。

  • iptables 或第三方安全软件屏蔽了健康检查网段:CLB 健康检查使用 100.64.0.0/10 网段。如果后端服务器上的 iptables 或其他第三方安全软件屏蔽了该网段,健康检查会失败,导致 CLB 认为服务器异常而不转发流量。请确保相关规则未屏蔽此网段。

  • 健康检查窗口期未到:新增后端服务器后,CLB 需要等待健康检查通过后才会开始转发流量。请稍等片刻后再观察流量是否正常转发。

  • 一致性哈希 (CH) 调度算法导致流量未分配:当监听使用基于源 IP 的一致性哈希 (CH) 调度算法时,请求根据源 IP 哈希结果固定分配到特定后端服务器。新增服务器后,只有哈希结果命中该服务器的源 IP 请求才会被转发过来。在客户端数量较少或源 IP 集中的场景下,新服务器可能长时间收不到流量。请在 CLB 控制台实例详情页点击监听标签,查看对应监听的调度算法配置,如为一致性哈希 (CH),可考虑切换为加权轮询 (WRR) 或轮询 (RR) 以改善流量分配。

CLB 七层监听回源后端服务器使用什么协议?

无论七层监听是 HTTP 还是 HTTPS,CLB 回源后端服务器时都使用 HTTP 协议,HTTP 版本映射关系如下:

  • 客户端请求为 HTTP 1.1 或 HTTP 2.0 版本时,七层监听访问后端服务器的 HTTP 协议版本是 HTTP 1.1。

  • 客户端请求为除 HTTP 1.1 和 HTTP 2.0 以外其他版本时,七层监听访问后端服务器的 HTTP 协议版本是 HTTP 1.0。