阿里云负载均衡SLB对接使用完全指南:从入门到生产级实战

apphuang2026年07月01日 19:41:141

引言:为什么业务需要负载均衡

在云计算与分布式架构日益普及的今天,单一服务器承载所有业务流量的模式早已难以为继。当大量用户同时访问一个应用时,单台服务器的CPU、内存、网络带宽等资源很快就会成为瓶颈,导致响应变慢甚至服务中断。更严重的是,一旦这台服务器发生硬件故障或遭受攻击,整个业务将完全不可用,由此造成的损失难以估量。

阿里云负载均衡SLB(Server Load Balancer)正是为解决这些问题而生的核心云服务。它通过将访问流量自动分发到多台后端服务器上,不仅突破了单台服务器的性能上限,还通过健康检查机制自动屏蔽故障节点,实现了业务的高可用与弹性扩展。对于运维工程师和架构师而言,合理配置SLB的流量分发规则,是保障用户体验、提升系统稳定性的关键一步。

需要先登录阿里云控制台,点击:阿里云控制台

一、SLB产品体系与选型策略

阿里云SLB并非单一产品,而是一个包含三种不同形态的负载均衡家族。理解各产品之间的差异,是正确配置流量分发规则的第一步。

1.1 应用型负载均衡ALB

ALB面向七层应用(HTTP/HTTPS/gRPC/QUIC),是当前阿里云主推的负载均衡产品。它支持内容路由、域名转发、URL路径转发、重定向、SSL卸载等高级功能,单实例可支撑百万级QPS。ALB基于Tengine(Nginx增强版)实现七层负载均衡,具备更强的应用层流量调度能力与安全防护能力。对于绝大多数Web网站、API服务、微服务架构等场景,ALB是最佳选择。

1.2 网络型负载均衡NLB

NLB专注于四层网络协议(TCP/UDP),基于高性能网络转发架构设计,单实例支持亿级并发连接,转发延迟低至微秒级。适用于实时音视频、游戏服务器、高性能数据库代理等对性能要求极高的场景。

1.3 传统型负载均衡CLB

CLB是阿里云早期的经典负载均衡产品,兼容四层(TCP/UDP)和七层(HTTP/HTTPS)负载均衡,配置相对简单。但CLB不支持域名与URL路径转发等高级七层特性,目前正逐步被ALB替代。对于简单的负载均衡场景或传统业务迁移,CLB仍可满足需求。

1.4 选型决策矩阵

综合来看,Web网站和API服务优先选择ALB;高性能四层业务(如游戏、直播)选择NLB;传统简单业务或成本敏感场景可选择CLB。具体决策时还需考虑以下维度:若业务需要基于域名或URL路径做精细化路由,必须选择ALB;若业务对并发连接数要求极高(如千万级以上),优先选择NLB;若业务仅为简单的TCP/UDP端口转发或轻量级HTTP代理,CLB足以胜任。

二、核心概念与术语解析

在开始配置之前,需要先理解以下几个SLB的核心概念:

  • 实例(Instance):SLB的核心资源实体,包含虚拟服务地址(VIP)、监听规则、服务器组关联关系等,是流量转发的核心载体。
  • 监听(Listener):SLB接收用户请求的入口,包含协议(HTTP/HTTPS/TCP/UDP)、端口、转发规则等配置。一个实例可创建多个监听,例如同时监听80端口的HTTP和443端口的HTTPS。
  • 服务器组(Server Group):后端服务器的逻辑集合,包含ECS实例、ENI弹性网卡、IP地址等类型,用于统一管理后端节点的端口、权重和健康检查规则。
  • 调度算法(Scheduling Algorithm):SLB分发流量的策略,决定流量如何分配到后端服务器,常用的有加权轮询、加权最小连接数、一致性哈希等。
  • 健康检查(Health Check):SLB定期向后端服务器发送探测请求,根据响应结果判断服务器是否正常,异常节点将被隔离,不再接收流量。

三、环境准备与前提条件

在对接负载均衡前,需完成以下环境准备,确保配置流程顺畅。

3.1 账号与权限准备

需拥有阿里云账号并完成实名认证,建议使用RAM子账号进行权限管理,遵循最小权限原则,避免主账号密钥泄露。RAM子账号需授予SLB管理权限(如AliyunSLBFullAccess)及ECS、VPC相关权限。

3.2 网络与资源准备

负载均衡实例与后端服务器(如ECS)需位于同一地域,建议选择靠近客户端的地域降低访问延迟。ALB/CLB实例创建后所属VPC无法修改,需提前规划VPC与子网。准备至少2台同地域ECS实例(或IDC服务器、函数计算服务),确保后端服务器已部署应用并开放相应端口。对于生产环境,强烈建议将ECS部署在不同的可用区,以实现跨可用区容灾。

四、创建负载均衡实例

进入阿里云控制台,在"产品与服务"中找到"负载均衡SLB",点击进入实例列表页面,单击"创建实例"。

4.1 选择实例类型

根据业务需求选择公网或私网实例。公网实例对外提供服务,需要绑定弹性公网IP并选择带宽计费方式;私网实例仅在VPC内部访问,用于内部服务间的流量调度。

4.2 选择地域与可用区

选择与后端ECS相同的地域。建议启用跨可用区部署,将实例部署在多个可用区以增强可用性。

4.3 配置实例规格与计费

ALB和NLB采用弹性规格,按量计费;CLB提供多种规格(如slb.s1.small),可根据预估流量选择。对于不确定流量的场景,建议优先选择按量计费模式,后续可根据实际使用情况调整。

五、配置服务器组

服务器组是后端服务器的逻辑集合,是SLB流量分发的目标对象。

5.1 创建服务器组

在SLB控制台中,进入"服务器组"页面,单击"创建服务器组"。选择服务器组类型(ALB支持服务器组、NLB支持服务器组),填写名称和VPC信息。

5.2 添加后端服务器

将ECS实例添加到服务器组中。支持三种添加方式:

  • 直接添加ECS实例:从当前账号下的ECS列表中选择实例。
  • 通过ENI弹性网卡添加:适用于ECS绑定多张网卡的场景。
  • 通过IP地址添加:支持添加IDC机房服务器或其他云厂商的服务器,实现混合云场景下的负载均衡。

配置每个后端服务器的端口和权重。权重值越高,分配到的流量比例越大。建议为所有后端服务器设置相同的权重,除非有明确的流量倾斜需求。

5.3 配置健康检查

健康检查是SLB自动检测后端服务器运行状况的机制。当探测到后端服务器运行状况不佳时,会停止向其发送流量,然后将流量转发给其他正常运行的后端服务器。

TCP健康检查:SLB尝试与后端服务器建立TCP连接,连接成功视为健康,超时或失败视为不健康。

HTTP/HTTPS健康检查:SLB向后端服务器发送HTTP GET请求到指定路径(如/health),检查响应状态码。如果状态码在200-399范围内,视为健康。

关键参数调优建议:

  • 响应超时时间:建议设为5秒以内。
  • 健康检查间隔:建议5-30秒,生产环境可设为5-10秒以保证故障快速发现。
  • 健康阈值:连续成功2-3次判定为健康。
  • 不健康阈值:连续失败3次判定为不健康。

对于Web应用,建议配置HTTP健康检查并指定明确的健康检查路径(如/health或/ping),避免使用根路径(/)以免与业务逻辑冲突。

六、配置监听规则

监听是SLB接收用户请求的入口,是流量分发规则的核心载体。

6.1 四层监听(TCP/UDP)

四层监听基于传输层协议工作,仅查看IP地址和端口信息进行转发,不解析应用层内容。配置步骤:

  • 选择监听协议:TCP或UDP。
  • 设置监听端口:如80、443、3306等。
  • 选择调度算法:加权轮询(RR)或加权最小连接数(WLC)。
  • 绑定服务器组:选择已创建的服务器组。
  • 开启健康检查:配置TCP健康检查参数。

四层监听的典型应用场景包括:数据库代理(如MySQL 3306端口)、游戏服务器(UDP协议)、TCP长连接业务等。

6.2 七层监听(HTTP/HTTPS)

七层监听基于应用层协议工作,能够解析HTTP/HTTPS请求内容,支持基于域名和URL路径的精细化路由。配置步骤:

  • 选择监听协议:HTTP或HTTPS。
  • 设置监听端口:通常为80(HTTP)或443(HTTPS)。
  • 选择调度算法:加权轮询(RR)、加权最小连接数(WLC)或源IP哈希。
  • 配置转发规则:支持基于域名(如api.example.com)和URL路径(如/api/v1/*)的转发。
  • 绑定服务器组:可为不同转发规则绑定不同的服务器组。
  • 开启健康检查:配置HTTP健康检查参数,指定健康检查路径和域名。

6.3 HTTPS监听与证书配置

HTTPS监听需要在SLB上部署SSL证书,实现SSL卸载。SLB负责解密HTTPS流量,然后将明文HTTP请求转发给后端服务器,减轻后端服务器的加密解密负担。

证书配置要点:

  • 支持上传PEM格式的证书和私钥。
  • 支持SNI(Server Name Indication)多域名证书。
  • 可配置安全策略(TLS版本、加密套件)。
  • 支持HTTP到HTTPS的强制跳转。

6.4 转发规则的高级配置

ALB支持基于域名和URL路径的精细化转发规则。例如,可以将api.example.com的请求转发到API服务器组,将www.example.com的请求转发到Web服务器组。还可以配置重定向规则(如将HTTP请求重定向到HTTPS)、重写规则(如修改URL路径)、返回固定响应等高级功能。

七、会话保持配置

会话保持(Session Persistence)确保来自同一用户的请求被持续路由到同一台后端服务器,这对于需要维持状态的应用程序(如用户登录会话、购物车等)至关重要。

7.1 基于Cookie的会话保持

适用于HTTP/HTTPS协议。SLB在用户首次请求时,在响应头中植入Cookie(植入式Cookie),或重写应用服务器设置的Cookie值(重写式Cookie)。当用户后续请求携带此Cookie时,SLB根据Cookie值进行哈希计算,映射到特定后端服务器。服务器映射可表示为:server_index = hash(cookie_value) mod n,其中n是后端服务器数量。

配置选项包括:超时时间(默认300秒,超过时间后会话失效)、Cookie名称等。

7.2 基于源IP的会话保持

适用于TCP/UDP协议。SLB直接使用用户源IP地址进行哈希计算,映射到后端服务器:server_index = hash(source_ip) mod n。优点是实现简单高效,适用于不支持Cookie的应用。缺点是在NAT环境下,多个用户可能共享同一公网IP,导致会话分配不均。

7.3 会话保持的注意事项

会话保持虽然能保证用户状态一致性,但过度使用可能导致后端服务器负载不均。建议结合健康检查一起使用,并定期评估会话保持的必要性——对于无状态应用(如RESTful API),不建议开启会话保持。

八、安全配置

8.1 安全组配置

安全组是阿里云最重要的网络安全隔离手段。ALB/NLB实例支持绑定安全组,用于控制进出负载均衡实例的流量。配置要点:

  • 安全组的入方向规则控制哪些来源IP可以访问SLB的监听端口。
  • 负载均衡的出方向流量为用户请求的回包,ALB/NLB的安全组对出流量不做限制,无需额外配置出方向规则。
  • 一个ALB实例最多支持加入4个安全组。

8.2 访问控制(ACL)

访问控制列表(ACL)提供更细粒度的IP黑白名单控制能力。支持在监听级别配置访问控制策略,允许或拒绝特定IP地址或IP段的访问。典型应用场景包括:只允许公司办公网IP访问管理后台、封禁恶意攻击IP等。

8.3 DDoS防护

SLB本身具备基础的DDoS防护能力,结合云盾可提供5Gbps的防DDoS攻击能力。对于大流量DDoS攻击,建议启用DDoS高防IP服务,将攻击流量在云端清洗后再转发到SLB。

九、监控与报警

9.1 云监控集成

SLB与阿里云云监控(CloudMonitor)深度集成,可实时监控以下关键指标:

  • QPS:每秒请求数,反映业务流量大小。
  • 新建连接数:每秒新建的连接数。
  • 并发连接数:当前活跃的连接总数。
  • 入流量/出流量:网络带宽使用情况。
  • 后端响应时间:后端服务器处理请求的平均耗时。

9.2 报警规则配置

建议为以下关键指标配置报警规则:

  • QPS超过预设阈值时报警。
  • 带宽使用率超过80%持续5分钟时报警。
  • 后端响应时间超过2000ms时报警。
  • 健康检查失败的后端服务器数量超过阈值时报警。

十、代码实践:通过CLI和SDK操作SLB

10.1 阿里云CLI操作示例

阿里云CLI是管理云资源的命令行工具,以下为常用SLB操作命令。

安装和配置阿里云CLI

# 安装阿里云CLI(macOS)
brew install aliyun-cli

# 配置访问凭证
aliyun configure
# 按提示输入AccessKey ID、AccessKey Secret、默认地域等

创建负载均衡实例(CLB)

# 创建传统型负载均衡CLB实例
aliyun slb CreateLoadBalancer \
  --RegionId cn-hangzhou \
  --LoadBalancerName my-slb-instance \
  --AddressType internet \
  --InternetChargeType paybytraffic

创建监听(七层HTTP监听)

# 为CLB实例创建HTTP监听
aliyun slb CreateLoadBalancerHTTPListener \
  --LoadBalancerId lb-xxxxxxxxx \
  --ListenerPort 80 \
  --BackendServerPort 8080 \
  --Scheduler wrr \
  --HealthCheck on \
  --HealthCheckURI /health \
  --HealthCheckConnectPort 8080

添加后端服务器

# 将ECS实例添加到CLB后端服务器组
aliyun slb AddBackendServers \
  --LoadBalancerId lb-xxxxxxxxx \
  --BackendServers '[{"ServerId":"i-xxxxxxxxx","Weight":100,"Port":8080}]'

10.2 Python SDK操作示例

阿里云提供Python SDK(Alibaba Cloud SDK for Python),方便通过代码管理SLB资源。

安装SDK

pip install alibabacloud_slb20140515

创建SLB客户端

from alibabacloud_slb20140515.client import Client
from alibabacloud_slb20140515.models import *
from alibabacloud_tea_openapi.models import Config

# 配置认证信息
config = Config(
    access_key_id='your-access-key-id',
    access_key_secret='your-access-key-secret',
    region_id='cn-hangzhou'
)
client = Client(config)

查询负载均衡实例列表

# 查询所有CLB实例
request = DescribeLoadBalancersRequest()
response = client.describe_load_balancers(request)
for lb in response.body.load_balancers.load_balancer:
    print(f"实例ID: {lb.load_balancer_id}, 名称: {lb.load_balancer_name}")

创建HTTP监听

# 创建HTTP监听
request = CreateLoadBalancerHTTPListenerRequest(
    load_balancer_id='lb-xxxxxxxxx',
    listener_port=80,
    backend_server_port=8080,
    scheduler='wrr',
    health_check='on',
    health_check_uri='/health',
    health_check_connect_port=8080
)
response = client.create_load_balancer_http_listener(request)

十一、性能优化与最佳实践

11.1 权重梯度调整策略

在新版本上线或服务器扩缩容时,建议采用梯度调整的方式平滑切换流量。例如,将新服务器的权重从10逐步调整到90,配合旧服务器从90逐步降到10,实现流量的平滑迁移。

11.2 连接复用优化

启用Keep-Alive可以复用TCP连接,减少握手开销。最佳Keep-Alive超时时间可参考公式:Timeout = (AverageRTT * 2) + ProcessingTime。

11.3 跨可用区部署

将后端ECS部署在不同的可用区,并结合SLB的跨可用区转发能力,可实现可用区级别的容灾。当一个可用区发生故障时,SLB自动将流量切换到其他可用区的健康服务器上。

11.4 与弹性伸缩结合

将SLB与弹性伸缩(Auto Scaling)结合使用,可根据流量自动增加或减少后端ECS实例的数量。弹性伸缩触发时,新创建的ECS实例自动加入SLB的服务器组,实现资源的弹性扩缩容。

11.5 使用CDN加速静态资源

对于Web应用,建议将静态资源(图片、CSS、JS等)通过CDN加速分发,减少SLB和后端服务器的压力。SLB仅处理动态API请求,可显著提升整体性能。

十二、常见问题与故障排查

12.1 健康检查失败

健康检查失败是最常见的问题之一。首次配置时出现异常,主要原因是健康检查配置问题(如检查路径错误、端口不通等)。配置成功后出现异常,主要原因是后端ECS实例本身出现问题(如服务崩溃、防火墙拦截等)。

排查步骤:

  • 检查后端ECS的CPU使用率是否超过80%。
  • 验证健康检查状态码是否持续返回5xx错误。
  • 确认后端服务器的安全组已放通健康检查来源IP。
  • 检查健康检查路径是否正确,后端服务是否正常响应。

12.2 访问延迟或超时

当出现请求延迟波动时,可按以下流程排查:

  • 检查后端ECS的CPU、内存、网络带宽是否达到瓶颈。
  • 对比SLB与ECS的访问日志定位瓶颈点。
  • 使用阿里云Tracing分析工具进行全链路追踪。
  • 检查SLB实例规格是否不足以支撑当前流量。

12.3 会话保持不生效

检查以下配置项:是否在监听级别开启了会话保持;Cookie超时时间是否设置过短;客户端是否禁用了Cookie;对于HTTPS监听,是否在证书配置中正确启用了会话保持相关设置。

结语

阿里云负载均衡SLB是现代云原生架构中不可或缺的核心组件。从产品选型、实例创建、监听配置到健康检查、会话保持、安全加固,每一个环节的合理配置都直接影响着业务的可用性与用户体验。本文从基础概念到高阶配置,结合实操步骤与代码示例,系统讲解了SLB对接ECS等后端服务的完整方法。希望读者能够通过本文掌握SLB的核心技能,构建出高可用、高性能的流量分发架构。

随着5G、物联网等技术的发展,未来业务对负载均衡的性能要求将越来越高。阿里云SLB正在通过智能调度算法、边缘计算集成、AIops预测等技术创新,持续进化。理解SLB不仅是掌握一个云产品,更是获得构建弹性架构的关键能力。

常见问题解答

问1:ALB、NLB和CLB三者之间如何选择?
答:Web网站、API服务、微服务等七层业务优先选择ALB;游戏、直播、高性能数据库等四层业务选择NLB;传统简单业务或成本敏感场景可选择CLB。如果业务需要基于域名或URL路径做精细化路由,必须选择ALB。

问2:SLB实例与后端ECS必须在同一个地域吗?
答:是的,负载均衡实例与后端服务器(如ECS)必须位于同一地域。ALB/CLB实例创建后所属VPC无法修改,需提前规划。建议选择靠近客户端的地域以降低访问延迟。

问3:健康检查失败时应该从哪里开始排查?
答:首先确认健康检查配置是否正确(路径、端口、域名等);其次检查后端ECS的安全组是否放通了健康检查来源IP;然后确认后端服务本身是否正常运行;最后查看SLB的监控日志定位具体错误原因。

问4:会话保持开启后对性能有影响吗?
答:会话保持本身对性能影响较小,但可能导致后端服务器负载不均。如果某些用户的请求量特别大,这些请求会持续路由到同一台服务器,造成该服务器负载过高。建议对无状态应用(如RESTful API)关闭会话保持。

问5:如何实现HTTP到HTTPS的强制跳转?
答:在ALB的HTTP监听中配置重定向转发规则,将HTTP请求重定向到HTTPS监听。具体操作:创建HTTP监听(端口80),添加转发规则,选择"重定向"动作,目标协议设为HTTPS,目标端口设为443。

问6:SLB的公网带宽如何选择?
答:公网SLB实例需要选择带宽计费方式。如果流量相对稳定,可选择按固定带宽计费;如果流量波动较大,建议选择按使用流量计费。对于不确定流量的新业务,优先选择按量计费模式,后续可根据实际监控数据调整。

相关文章

买阿里云服务器能便宜吗?十年代理揭秘 3 大省钱攻略!

买阿里云服务器能便宜吗?十年代理揭秘 3 大省钱攻略!

作为深耕阿里云代理领域 10 年的 “老司机”,经常被问到:“买阿里云服务器能便宜吗?有没有优惠价格?” 今天就用实打实的行业经验告诉你:不仅能便宜,选对渠道还能省一大笔! 这篇文章带你解锁阿里云服务…

做了 10 年腾讯云代理,我想跟你聊聊返佣那些事儿​

做了 10 年腾讯云代理,我想跟你聊聊返佣那些事儿​

最近总有朋友问我:“腾讯云有返点吗?腾讯云服务器能拿佣金不?返佣比例到底有多少?” 作为一个在腾讯云代理行业摸爬滚打了 10 年的 “老人”,今天就来跟大家好好…

阿里云代理商返佣机制深度解析:头部代理优势与企业合作策略

阿里云代理商返佣机制深度解析:头部代理优势与企业合作策略

阿里云代理商的核心价值定位1. 代理商的角色与职责阿里云代理商作为阿里云生态的核心合作伙伴,承担着双重核心职能:• 产品销售:负责推广销售阿里云全系列云产品,包括云服务器ECS、云数据库RDS、对象存…

阿里云代理商返佣机制深度解析:头部代理优势与企业合作策略

阿里云代理商返佣机制深度解析:头部代理优势与企业合作策略

01一、阿里云代理商的核心价值定位1. 代理商的角色与职责阿里云代理商作为阿里云生态的核心合作伙伴,承担着双重核心职能:• 产品销售:负责推广销售阿里云全系列云产品,包括云服务器ECS、云数据库RDS…

阿里云代理商有哪些?阿里云代理返点是真的么?

阿里云代理商有哪些?阿里云代理返点是真的么?

一,阿里云代理商基本介绍阿里云代理商通俗一点,就是指从事阿里云云服务器,云数据库等阿里云公有云产品销售的代理商,每销售一件阿里云公有云产品出去,阿里云给予该代理商一定比例的提成。在阿里云官方定义中,这…

2026阿里云代理商生态全解析:五级代理体系、返佣政策与企业上云指南

2026阿里云代理商生态全解析:五级代理体系、返佣政策与企业上云指南

一、阿里云五级代理体系:权益阶梯与合作价值1. 五级代理的核心权益差异阿里云构建了多层次的代理生态体系,涵盖全国总代理、区域核心代理、行业ISV(独立软件开发商)、金牌/银牌认证代理及标准代理五大核心…