腾讯云 CVM 如何配置负载均衡 CLB 实现流量分发高可用

文章导读
在腾讯云架构中,实现 CVM 流量分发与高可用的标准方案是结合应用型负载均衡 CLB 与多可用区 CVM 实例。通过 CLB 统一入口流量,配合健康检查机制,可在后端某台 CVM 故障时自动切换,保障业务连续性。
📋 目录
  1. 前置准备
  2. 配置负载均衡实例
  3. 安全组最小权限配置
  4. 验证负载效果
  5. 常见故障排查
  6. 计费说明
  7. 参考文档
A A

在腾讯云架构中,实现 CVM 流量分发与高可用的标准方案是结合应用型负载均衡 CLB 与多可用区 CVM 实例。通过 CLB 统一入口流量,配合健康检查机制,可在后端某台 CVM 故障时自动切换,保障业务连续性。

核心结论:CLB 是官方推荐的流量入口,配合多可用区 CVM 可消除单点故障,但必须严格配置安全组最小权限。

  • 适用场景:业务需要对外提供服务且要求持续可用,避免单实例宕机导致中断
  • 前置条件:至少两台不同可用区的 CVM 实例,同一 VPC 网络,已安装应用服务
  • 验收标准:通过 curl 循环请求确认流量分发,模拟故障确认自动切换

前置准备

确保至少有两台 CVM 实例运行正常,且安装了相同的应用服务(如 Nginx 或 Tomcat),监听端口一致(例如 80 或 443)。建议将这两台 CVM 分布在不同的可用区,以规避机房级故障。

为便于验证负载效果,建议在不同 CVM 上部署不同内容的首页(例如修改 index.html 显示主机名或 IP)。

# 示例:在 CVM 上修改 Nginx 首页标识不同后端
echo "Backend Server 1" > /usr/share/nginx/html/index.html

配置负载均衡实例

登录腾讯云控制台,进入负载均衡页面,点击“创建”。网络类型选择“私有网络”,确保与 CVM 在同一 VPC 下。类型建议选择“应用型负载均衡”,支持更灵活的七层转发规则。

若需自动化部署,可使用腾讯云 CLI 工具(需先安装配置 tccli):

# 创建负载均衡实例(示例参数,请根据实际 Region 调整)
tccli clb CreateLoadBalancer `--LoadBalancerType` "OPEN" `--Region` "ap-guangzhou" `--LoadBalancerName` "MyCLB" `--VpcId` "vpc-xxxxxx" `--SubnetId` "subnet-xxxxxx"

创建完成后,在 CLB 实例详情页点击“添加监听器”。选择协议类型(TCP/HTTP/HTTPS),设置前端端口。在“后端服务”环节,勾选已准备好的 CVM 实例,并填写对应的后端端口。务必开启“健康检查”功能,默认配置通常可用,若有特殊健康检查路径需手动修改。

# 创建监听器并绑定目标(示例)
tccli clb CreateListener `--LoadBalancerId` "lb-xxxxxx" `--Protocol` "HTTP" `--Port` 80 `--Region` "ap-guangzhou"
tccli clb RegisterTargets `--LoadBalancerId` "lb-xxxxxx" `--ListenerId` "lis-xxxxxx" `--Targets` "[{\"InstanceId\":\"ins-xxxxxx\",\"Port\":80,\"Weight\":10}]" `--Region` "ap-guangzhou"

安全组最小权限配置

这是最容易遗漏且存在风险的环节。CLB 与 CVM 之间通过私有网络通信,严禁在 CVM 安全组中直接开放 0.0.0.0/0 访问业务端口,否则后端服务将直接暴露在公网,绕过 CLB 防护。

腾讯云 CVM 如何配置负载均衡 CLB 实现流量分发高可用

正确配置方式:

  • 检查 CVM 关联的安全组,确保入站规则允许来自VPC 网段(例如 10.0.0.0/16)或CLB 实例所在子网网段的流量访问业务端口。
  • 若 CLB 实例本身关联安全组,需确保其出站规则允许访问 CVM 端口。
# 安全组规则示例(入站)
优先级:1
策略:允许
端口:80/443
源 IP:10.0.0.0/16 (您的 VPC CIDR)

验证负载效果

1. 控制台状态检查

在 CLB 控制台的“后端服务”列表中,查看 CVM 的健康状态。若显示“健康”,说明连接正常;若显示“异常”,需检查安全组或应用服务是否启动。

2. 外部访问测试

使用 curl 命令访问 CLB 的公网 IP 地址。多次刷新请求,观察返回内容。若配置了多台 CVM 且未开启会话保持,多次请求应可能落到不同后端服务器。

# 循环请求 10 次,观察返回内容变化
for i in {1..10}; do curl http://<CLB_PUBLIC_IP>; echo ""; done

3. 故障模拟

手动停止其中一台 CVM 实例,或停止其上的 Web 服务(如 systemctl stop nginx)。持续访问 CLB IP,观察服务是否中断。正常情况下,请求应自动切换到另一台健康的 CVM,用户侧无明显感知。

常见故障排查

1. 安全组拦截

腾讯云 CVM 如何配置负载均衡 CLB 实现流量分发高可用

配置完 CLB 后发现无法访问,多数是安全组问题。确保 CVM 安全组允许 VPC 内网段访问,而非仅允许公网 IP。

2. 健康检查路径错误

若使用七层监听,健康检查默认可能请求根路径。如果应用未配置根路径返回 200 状态码,健康检查会失败,导致流量无法分发。建议指定一个稳定的健康检查接口路径(如 /health)。

3. 会话保持影响负载

若开启了会话保持(Session Stickiness),同一用户的请求会固定转发到同一台 CVM。在测试负载均衡效果时,需关闭此功能或使用不同客户端 IP 测试,否则可能误以为负载不均衡。

计费说明

CLB 实例本身收取实例费与流量费。若 CLB 与 CVM 不在同一可用区,虽然实现了高可用,但可能会产生跨可用区流量费用。具体费用请参考腾讯云官方计费文档,建议在成本控制严格的生产环境中确认计费规则。

参考文档

1. 腾讯云官方文档 - 负载均衡产品简介
URL: https://cloud.tencent.com/document/product/214
2. 腾讯云官方文档 - 配置健康检查
URL: https://cloud.tencent.com/document/product/214/30729
3. 腾讯云官方文档 - 安全组配置指南
URL: https://cloud.tencent.com/document/product/213/16294