阿里云负载均衡SLB配置完全指南:从选型到生产级部署实战

📅 2026/7/2 3:59:29
阿里云负载均衡SLB配置完全指南:从选型到生产级部署实战
引言为什么需要负载均衡在云计算时代单一服务器承载网站流量的模式早已无法满足高并发与高可用的业务需求。当大量用户同时访问一个网站时单台服务器的CPU、内存、网络带宽等资源很快就会成为瓶颈导致响应变慢甚至服务中断。更严重的是一旦这台服务器发生故障整个网站将完全不可用。阿里云负载均衡SLBServer Load Balancer正是为解决这些问题而生的核心云服务。SLB通过将访问流量自动分发到多台后端服务器上不仅突破了单台服务器的性能上限还通过健康检查机制自动屏蔽故障节点实现了业务的高可用与弹性扩展。需要先登录阿里云控制台点击阿里云控制台一、SLB产品体系与选型指南阿里云SLB并非单一产品而是一个包含三种不同形态的负载均衡家族。理解各产品之间的差异是正确配置流量分发规则的第一步。1.1 应用型负载均衡ALBALB面向七层应用HTTP/HTTPS/gRPC/QUIC是当前阿里云主推的负载均衡产品。它支持内容路由、域名转发、URL路径转发、重定向、SSL卸载等高级功能单实例可支撑百万级QPS。对于绝大多数Web网站、API服务、微服务架构等场景ALB是最佳选择。ALB在HTTPS配置方面拥有最完整的能力矩阵支持基于域名和URL路径的内容路由、支持SNI多域名证书、支持全链路HTTPS加密、支持HTTP/2与HTTP/3。1.2 网络型负载均衡NLBNLB专注于四层网络协议TCP/UDP基于高性能网络转发架构设计单实例支持亿级并发连接转发延迟低至微秒级。适用于实时音视频、游戏服务器、高性能数据库代理等对性能要求极高的场景。NLB同样支持SSL卸载称为TCPSSL监听可以在四层完成TLS终止。1.3 传统型负载均衡CLBCLB是阿里云早期的经典负载均衡产品兼容四层TCP/UDP和七层HTTP/HTTPS负载均衡配置相对简单。但CLB不支持域名与URL路径转发等高级七层特性目前正逐步被ALB替代。对于简单的负载均衡场景或传统业务迁移CLB仍可满足需求。1.4 选型建议综合来看Web网站和API服务优先选择ALB高性能四层业务如游戏、直播选择NLB传统简单业务或成本敏感场景可选择CLB。七层业务、云原生应用或有超强性能需求、高级路由需求首选ALB。四层业务、IoT应用或有海量并发、TCPSSL卸载、全端口监听等需求首选NLB。二、核心配置术语解析在开始配置之前需要先理解以下几个SLB的核心概念实例InstanceSLB的核心资源实体包含虚拟服务地址VIP、监听规则、服务器组关联关系等是流量转发的核心载体。监听ListenerSLB接收用户请求的入口包含协议HTTP/HTTPS/TCP/UDP、端口、转发规则等配置。一个实例可创建多个监听例如同时监听80端口的HTTP和443端口的HTTPS。服务器组Server Group后端服务器的逻辑集合包含ECS实例、ENI弹性网卡、IP地址等类型用于统一管理后端节点的端口、权重和健康检查规则。调度算法Scheduling AlgorithmSLB分发流量的策略决定流量如何分配到后端服务器常用的有加权轮询、加权最小连接数、一致性哈希等。健康检查Health CheckSLB定期向后端服务器发送探测请求根据响应结果判断服务器是否正常异常节点将被隔离不再接收流量。三、配置前准备工作3.1 账号与权限准备需拥有阿里云账号并完成实名认证建议使用RAM子账号进行权限管理遵循最小权限原则避免主账号密钥泄露。RAM子账号需授予SLB管理权限如AliyunSLBFullAccess及ECS、VPC相关权限。3.2 网络与资源准备负载均衡实例与后端服务器如ECS需位于同一地域建议选择靠近客户端的地域降低访问延迟。ALB/CLB实例创建后所属VPC无法修改需提前规划VPC与子网。准备至少2台同地域ECS实例或IDC服务器、函数计算服务确保后端服务器已部署应用并正常运行。后端服务器安全组需要对相应服务端口放行。四、创建负载均衡实例以下是创建SLB实例的核心步骤4.1 登录控制台登录阿里云控制台导航至负载均衡SLB产品页面。4.2 创建实例点击创建实例按钮根据业务需求选择实例类型ALB、NLB或CLB、地域、网络类型公网/私网、VPC与交换机等参数。公网类型实例提供公网IP地址对外提供服务私网类型实例仅在VPC内部提供负载均衡服务。建议启用跨可用区容灾以增强可用性。4.3 使用阿里云CLI创建实例除了控制台操作还可以通过阿里云CLI命令行工具创建负载均衡实例。首先需要配置CLI的身份凭证和默认区域aliyun configure配置完成后执行以下命令创建负载均衡实例aliyun slb create-load-balancer --RegionId cn-hangzhou --LoadBalancerName my-slb-instance --AddressType internet --InternetChargeType paybytraffic参数说明- RegionId地域ID- LoadBalancerName实例名称- AddressType网络类型internet公网/intranet私网- InternetChargeType公网计费方式paybytraffic按流量计费/paybybandwidth按带宽计费五、配置后端服务器组服务器组是后端服务器的逻辑集合用于统一管理后端节点的端口、权重和健康检查规则。5.1 创建服务器组在SLB实例详情页中进入服务器组管理页面点击创建服务器组。填写服务器组名称选择后端服务器类型ECS实例、ENI弹性网卡或IP地址。5.2 添加后端服务器将ECS实例添加到服务器组中aliyun slb add-backend-servers --LoadBalancerId lb-xxx --BackendServers [{ServerId:i-xxx,Weight:100,Port:80}]参数说明- LoadBalancerId负载均衡实例ID- BackendServers后端服务器列表包含服务器ID、权重和端口5.3 配置服务器权重权重值越高的后端服务器被轮询到的概率越高。在加权轮询算法中权重控制每台服务器流量分配比例。可以针对不同性能的服务器设置不同的权重性能高的服务器分配更高的权重。aliyun slb set-backend-servers --LoadBalancerId lb-xxx --BackendServers [{ServerId:i-xxx,Weight:50,Port:80},{ServerId:i-yyy,Weight:100,Port:80}]六、配置监听监听是SLB接收用户请求的入口包含协议、端口、转发规则等配置。6.1 添加监听的基本步骤在SLB实例详情页中找到监听配置部分点击添加监听- 选择协议HTTP、HTTPS、TCP、UDP等及端口号- 设置监听名称- 选择后端协议- 配置健康检查- 配置会话保持- 选择调度算法- 如果是HTTPS监听上传SSL证书和私钥文件6.2 四层监听配置TCP/UDP四层监听适用于对数据准确性要求高、注重可靠性的场景如文件传输、邮件收发和远程登录等。四层监听的核心配置参数包括调度算法加权轮询(WRR)、轮询(RR)、加权最小连接数(WLC)、一致性哈希(CH)会话保持开启后同一客户端的请求分发到同一台后端服务器会话保持超时时间1~3600秒连接超时时间10~900秒获取客户端真实IP四层监听默认开启后端服务器可直接获得真实IP使用CLI创建TCP监听aliyun slb create-load-balancer-tcp-listener --LoadBalancerId lb-xxx --ListenerPort 80 --BackendServerPort 80 --Bandwidth -1 --Scheduler wrr --HealthCheckType tcp --HealthyThreshold 3 --UnhealthyThreshold 3 --HealthCheckTimeout 5 --HealthCheckInterval 26.3 七层监听配置HTTP/HTTPS七层监听适用于Web应用、API服务等场景。七层监听支持更丰富的流量管理功能。6.3.1 HTTP监听配置aliyun slb create-load-balancer-http-listener --LoadBalancerId lb-xxx --ListenerPort 80 --BackendServerPort 80 --Bandwidth -1 --Scheduler wrr --HealthCheckType http --HealthCheckURI /health --HealthyThreshold 3 --UnhealthyThreshold 3 --HealthCheckTimeout 5 --HealthCheckInterval 26.3.2 HTTPS监听与证书配置HTTPS监听需要绑定SSL证书。将HTTPS证书配置在SLB层面实现SSL/TLS卸载意味着加密解密的高计算开销由SLB承担后端ECS服务器只需处理HTTP明文流量从而显著降低后端服务器的CPU负载。aliyun slb create-load-balancer-https-listener --LoadBalancerId lb-xxx --ListenerPort 443 --BackendServerPort 80 --Bandwidth -1 --Scheduler wrr --HealthCheckType http --HealthCheckURI /health --SSLPort 443 --ServerCertificateId 123456证书格式要求阿里云SLB支持PEM格式的证书需包含证书内容和私钥。6.4 调度算法详解SLB支持多种调度算法加权轮询WRR权重值越高的后端服务器被轮询到的概率越高。适用于服务器性能不均的场景。轮询RR按照访问顺序依次将外部请求分发到后端服务器。适用于服务器性能相近的场景。加权最小连接数WLC除了根据每台后端服务器设定的权重值进行轮询同时还考虑后端服务器的实际负载即连接数。当权重值相同时当前连接数越小的后端服务器被轮询到的概率越高。适用于长连接业务场景。一致性哈希CH基于源IP地址的一致性哈希相同的源地址会调度到相同的后端服务器。适用于需要会话保持的场景。七、健康检查配置健康检查是SLB保障业务高可用的核心机制。SLB通过定期向后端服务器发送探测请求根据响应结果判断服务器是否正常异常节点将被隔离不再接收流量。7.1 健康检查核心参数健康检查的主要参数包括检查类型根据应用选择HTTP、HTTPS、TCP或UDP等不同的检查类型健康检查路径指定用于健康检查的URL路径默认为/健康检查域名对于七层监听可指定健康检查的域名响应超时时间如果ECS实例在指定时间内没有响应则视为不健康健康检查间隔SLB向后端ECS实例发送健康检查请求的时间间隔健康阈值连续几次健康检查成功后才将服务器视为健康不健康阈值连续几次健康检查失败后将服务器视为不健康7.2 健康检查配置示例在控制台配置监听时可以在高级配置中设置健康检查参数。以下是通过CLI配置健康检查的示例aliyun slb set-load-balancer-http-listener --LoadBalancerId lb-xxx --ListenerPort 80 --HealthCheckType http --HealthCheckURI /health --HealthyThreshold 3 --UnhealthyThreshold 3 --HealthCheckTimeout 5 --HealthCheckInterval 2 --HealthCheckDomain www.example.com7.3 健康检查异常排查首次配置健康检查出现异常的主要原因是健康检查配置问题配置成功后健康检查出现异常的主要原因是后端ECS实例出现问题。常见排查方向包括安全类防护软件问题后端服务器未在监听端口启动服务健康检查路径配置错误导致返回404SLB实例未配置健康检查域名HTTP请求转发到默认站点没有资源响应八、会话保持配置会话保持功能适用于需保持用户会话状态的场景例如购物场景中同一个用户的连续请求可能会被分发至不同的服务器导致用户的登录信息、购物车中的商品信息等丢失。开启会话保持后负载均衡监听会把来自同一客户端的访问请求分发到同一台后端服务器上。8.1 ALB会话保持的两种方式ALB开启会话保持后需要选择Cookie的处理方式植入Cookie客户端第一次访问时ALB会在返回请求中植入Cookie下次客户端携带此Cookie访问负载均衡服务会将请求定向转发给之前记录到的后端服务器上。植入Cookie方式自带SameSiteNone可以有效解决跨域场景下浏览器无法保存Cookie的问题。重写Cookie当ALB发现用户自定义了Cookie将会对原来的Cookie进行重写下次客户端携带新的Cookie访问ALB会将请求定向转发给之前记录的后端服务器。8.2 配置会话保持在服务器组页面找到目标服务器组在操作列单击编辑基本信息开启会话保持。aliyun slb set-server-group --ServerGroupId sgp-xxx --SessionPersistenceEnabled true --SessionPersistenceType insert --CookieTimeout 3600九、高级配置转发规则与内容路由ALB支持基于域名和URL路径的精细化转发规则同一个SLB实例可以根据请求的域名或路径将流量分发到不同的后端服务器组实现多站点共用同一个负载均衡实例的高效架构。9.1 转发规则的匹配方式ALB按转发规则编号的优先级顺序逐条匹配不会自动按域名或路径的精确程度排序。如需精确域名优先匹配请手动将精确域名的规则调整到通配符或正则规则之前。ALB的匹配方式与Nginx的最长前缀匹配和CLB的自动域名精度排序不同。9.2 配置示例基于域名的转发aliyun alb create-rule --ListenerId lsr-xxx --RuleName api-rule --Priority 10 --Conditions [{Type:Host,HostConfig:{Values:[api.example.com]}}] --Actions [{Type:ForwardGroup,ForwardGroupConfig:{ServerGroupTuples:[{ServerGroupId:sgp-xxx}]}}]9.3 配置示例HTTP强制跳转HTTPS将HTTP请求强制重定向到HTTPSaliyun alb create-rule --ListenerId lsr-xxx --RuleName redirect-https --Priority 1 --Conditions [{Type:Host,HostConfig:{Values:[*]}}] --Actions [{Type:Redirect,RedirectConfig:{Protocol:HTTPS,Port:443,Host:${host},Path:${path},Query:${query},RedirectCode:301}}]十、安全配置10.1 访问控制IP黑白名单可以为不同监听配置白名单或黑名单。白名单允许特定IP访问黑名单禁止特定IP访问。配置访问控制时需注意如果关联的策略组中没有添加任何IP条目访问控制不会生效。aliyun slb create-access-control-list --AclName my-acl --AddressIPVersion ipv4aliyun slb add-access-control-list-entry --AclId acl-xxx --AclEntrys [{Entry:192.168.1.0/24,Comment:allow-subnet}]10.2 安全组配置后端ECS实例的安全组需要对SLB健康检查的源IP及用户访问的端口放行。十一、监控与日志11.1 访问日志日志服务联合负载均衡SLB推出访问日志功能可以通过负载均衡的访问日志了解客户端用户行为、客户端用户的地域分布排查问题等。SLB访问日志功能当前支持基于HTTP/HTTPS的七层负载均衡。访问日志记录了所有发送到CLB的请求的详细信息包括请求时间、客户端IP地址、延迟、请求路径和服务器响应等。11.2 操作日志操作日志需在ActionTrail控制台查看记录云账户资源操作提供操作记录查询。十二、使用SDK进行配置管理除了控制台和CLI还可以通过SDK编程方式管理SLB资源。12.1 Python SDK示例from aliyunsdkcore.client import AcsClient from aliyunsdkslb.request.v20140515 import CreateLoadBalancerRequest client AcsClient(your-access-key-id, your-access-key-secret, cn-hangzhou) request CreateLoadBalancerRequest.CreateLoadBalancerRequest() request.set_LoadBalancerName(my-slb-python) request.set_AddressType(internet) request.set_InternetChargeType(paybytraffic) response client.do_action_with_exception(request) print(response)12.2 Java SDK示例import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.slb.model.v20140515.CreateLoadBalancerRequest; import com.aliyuncs.slb.model.v20140515.CreateLoadBalancerResponse; public class SlbExample { public static void main(String[] args) { DefaultProfile profile DefaultProfile.getProfile( cn-hangzhou, your-access-key-id, your-access-key-secret); IAcsClient client new DefaultAcsClient(profile); CreateLoadBalancerRequest request new CreateLoadBalancerRequest(); request.setLoadBalancerName(my-slb-java); request.setAddressType(internet); request.setInternetChargeType(paybytraffic); try { CreateLoadBalancerResponse response client.getAcsResponse(request); System.out.println(response.getLoadBalancerId()); } catch (Exception e) { e.printStackTrace(); } } }十三、生产环境最佳实践13.1 高可用部署启用跨可用区容灾将后端服务器部署在不同可用区每个监听至少添加两台后端服务器合理配置健康检查参数避免误判13.2 性能优化根据业务量选择合适的实例规格避免过度配置或配置不足对于Web业务优先选择ALB利用其七层处理能力启用Gzip压缩减少传输数据量13.3 安全管理使用RAM子账号进行权限管理遵循最小权限原则HTTPS监听配置SSL证书实现加密传输配置访问控制策略限制非法IP访问13.4 成本控制按需选择计费方式按流量计费适合流量波动大的场景按带宽计费适合流量稳定的场景合理设置监听带宽上限避免超量费用定期清理未使用的SLB实例和监听十四、常见问题排查14.1 健康检查失败首次配置健康检查出现异常的主要原因是健康检查配置问题。配置成功后健康检查出现异常的主要原因是后端ECS实例出现问题。检查顺序确认后端服务正常→确认安全组放行→确认健康检查路径正确→确认健康检查域名配置。14.2 会话保持不生效检查监听配置中会话保持是否已开启。确认后端服务器是否正常响应。对于七层监听检查Cookie是否被浏览器拦截。14.3 访问不通检查SLB实例状态是否为运行中→检查监听状态是否为已启动→检查后端服务器健康检查状态是否为正常→确认安全组规则→确认后端服务端口正确。结语阿里云负载均衡SLB是构建高可用、高性能云原生架构的核心组件。从产品选型到实例创建从监听配置到健康检查调优每一个环节都直接影响着业务的稳定性和用户体验。本文系统梳理了SLB的完整配置流程并结合CLI和SDK代码示例帮助读者从理论到实践全面掌握SLB的部署与运维技能。在实际生产环境中建议结合业务特点灵活运用各项配置参数持续优化负载均衡架构为业务的高速发展提供坚实的流量分发底座。常见问题解答问1ALB、NLB和CLB三者有什么区别如何选择答ALB面向七层应用HTTP/HTTPS支持域名和URL路径转发等高级功能适用于Web网站和API服务。NLB面向四层TCP/UDP专注于高性能转发适用于游戏、直播等场景。CLB是传统产品兼容四层和七层但功能较基础适用于简单场景。Web业务优先选ALB高性能四层业务选NLB传统简单业务可选CLB。问2健康检查失败如何排查答首先确认后端服务是否正常运行其次检查安全组是否对SLB健康检查的源IP放行然后确认健康检查路径和域名配置是否正确。首次配置失败多为配置问题配置成功后失败多为后端服务器问题。问3会话保持有哪些方式答ALB支持植入Cookie和重写Cookie两种方式。植入Cookie由ALB自动插入重写Cookie在用户自定义Cookie时使用。四层监听支持基于源IP的会话保持。问4HTTPS证书应该配置在SLB还是后端ECS答建议配置在SLB层面实现SSL卸载。这样加密解密的计算开销由SLB承担后端ECS只需处理HTTP明文流量显著降低后端服务器CPU负载。问5ALB的转发规则匹配顺序是怎样的答ALB按转发规则编号的优先级顺序逐条匹配不会自动按域名或路径的精确程度排序。精确域名的规则需要手动调整到通配符规则之前。问6负载均衡实例创建后VPC能否修改答不能。ALB/CLB实例创建后所属VPC无法修改需要在创建前提前规划好VPC与子网。