阿里云SLB负载均衡网站流量分发规则配置完全指南

apphuang2026年06月23日 11:34:5223

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

在云计算时代,单一服务器承载网站流量的模式早已无法满足高并发与高可用的业务需求。当大量用户同时访问一个网站时,单台服务器的CPU、内存、网络带宽等资源很快就会成为瓶颈,导致响应变慢甚至服务中断。更严重的是,一旦这台服务器发生故障,整个网站将完全不可用。阿里云负载均衡SLB(Server Load Balancer)正是为解决这些问题而生的核心云服务。

SLB通过将访问流量自动分发到多台后端服务器上,不仅突破了单台服务器的性能上限,还通过健康检查机制自动屏蔽故障节点,实现了业务的高可用与弹性扩展。对于网站运营者而言,合理配置SLB的流量分发规则,是保障用户体验、提升系统稳定性的关键一步。

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

一、SLB产品体系与选型指南

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

1.1 应用型负载均衡ALB

ALB面向七层应用(HTTP/HTTPS/gRPC/QUIC),是当前阿里云主推的负载均衡产品。它支持内容路由、域名转发、URL路径转发、重定向、SSL卸载等高级功能,单实例可支撑百万级QPS。对于绝大多数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。本文后续配置将主要基于ALB展开,部分通用配置同样适用于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定期向后端服务器发送探测请求,根据响应结果判断服务器是否正常运行,异常节点将被自动隔离不再接收流量。

三、SLB流量分发规则配置全流程

下面以ALB为例,详细讲解从零开始配置网站流量分发规则的完整步骤。

3.1 创建SLB实例

登录阿里云控制台后,进入负载均衡产品页面,点击创建实例。在实例创建过程中需要关注以下关键配置:

  • 地域选择:SLB实例与后端ECS服务器必须位于同一地域,建议选择靠近目标用户群体的地域以降低访问延迟。
  • 实例类型:选择应用型负载均衡ALB(如为Web网站配置)。
  • 网络类型:选择专有网络VPC,并指定所属VPC和交换机。实例创建后所属VPC无法修改,需提前规划。
  • 计费方式:按量付费或包年包月,根据业务需求选择。

3.2 配置监听

监听是SLB接收请求的入口,也是配置流量分发规则的核心环节。创建完实例后,点击添加监听进入配置向导。

3.2.1 监听协议与端口

对于网站场景,通常需要配置HTTP(80端口)和HTTPS(443端口)两个监听。HTTPS监听需要绑定SSL证书,后端服务器上无需再配置SSL证书。配置时需注意:

  • HTTP监听:协议选择HTTP,端口填写80。
  • HTTPS监听:协议选择HTTPS,端口填写443,并上传已备案的SSL证书。

3.2.2 调度算法选择

调度算法决定了SLB如何将请求分发到后端服务器。ALB支持以下几种核心算法:

  • 加权轮询(Weighted Round-Robin, WRR):权重值越高的后端服务器,被轮询到的概率越高。适用于后端服务器性能存在差异的场景,可通过调整权重将更多流量分配到性能更强的服务器。
  • 加权最小连接数(Weighted Least Connections, WLC):除了根据权重值轮询外,还综合考虑后端服务器的当前连接数。当权重相同时,当前连接数越小的服务器被选中的概率越高。适用于长连接业务或各服务器负载差异较大的场景。
  • 一致性哈希(Consistent Hashing):基于源IP地址、URL等参数进行哈希计算,确保相同特征的请求始终路由到同一台后端服务器。常用于需要会话保持的场景。

对于大多数Web网站,加权轮询是默认且足够好的选择。如果后端服务器配置差异较大,建议使用加权轮询并合理设置权重值。

3.2.3 会话保持配置

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

  • 基于Cookie的会话保持:SLB在用户首次请求时注入Cookie到响应头中,后续请求根据Cookie值哈希计算映射到特定后端服务器。哈希算法可用公式表示为:server_index = hash(cookie_value) mod n,其中n是后端服务器数量。适用于HTTP/HTTPS协议。
  • 基于源IP的会话保持:直接使用用户源IP地址进行哈希计算映射到后端服务器。公式为:server_index = hash(source_ip) mod n。适用于TCP/UDP协议或不支持Cookie的应用。缺点是在NAT环境下多个用户可能共享同一公网IP,导致会话分布不均。

配置时需设置会话保持超时时间(默认300秒),超过该时间无请求则会话失效。需要注意的是,开启会话保持可能导致负载不均,建议结合健康检查一起使用。

3.2.4 健康检查配置

健康检查是SLB自动隔离故障节点的核心机制。配置时需设置以下关键参数:

  • 检查类型:对于Web网站选择HTTP或HTTPS。
  • 健康检查路径:指定一个URL路径(如/health),SLB将定期向该路径发起请求以检查服务状态。该路径应指向一个能准确反映服务健康状态的接口。
  • 响应超时时间:如果在设定时间内未收到后端响应,则认为该实例不健康。建议设为5秒以内。
  • 检查间隔:两次健康检查之间的间隔时间。
  • 健康阈值:连续成功响应的次数达到该值后,SLB认为后端实例恢复健康。
  • 不健康阈值:连续失败的次数达到该值后,SLB认为后端实例不健康。建议设为3次。

对于HTTP健康检查,SLB会发送请求到指定路径并检查响应状态码,状态码在200-399范围内视为健康。需确保后端服务器防火墙允许来自SLB健康检查的请求。

3.3 配置转发规则(七层核心能力)

转发规则是七层监听(HTTP/HTTPS)的核心功能,它允许SLB根据请求的域名或URL路径将流量分发到不同的后端服务器组。只有七层监听支持配置转发规则。

3.3.1 基于域名的转发

当同一个SLB实例需要承载多个网站时,可以基于域名进行流量分发。例如,example1.com和example2.com两个域名指向同一个SLB的公网IP,但请求需要分别路由到不同的后端服务器组。

配置步骤:

  1. 在监听配置中启用基于域名的转发规则。
  2. 点击添加域名,输入需要识别的域名(如www.example1.com)。
  3. 为该域名关联对应的虚拟服务器组。

配置完成后,SLB接收到请求时会根据HTTP请求头中的Host字段进行匹配,将不同域名的请求转发到对应的后端服务器组。

3.3.2 基于URL路径的转发

基于URL路径的转发允许将同一域名下不同路径的请求分发到不同的后端服务器组。例如,将所有以/api/开头的请求转发到API服务器组,将其他请求转发到Web服务器组。

配置步骤:

  1. 在监听器下选择转发规则选项。
  2. 点击添加转发规则,输入路径匹配规则(如/api/*)。
  3. 为该规则关联对应的后端服务器组。

ALB按转发规则的编号顺序逐条匹配,一旦匹配成功即停止后续匹配。因此需要将更具体的路径规则排在前面(编号更小),通配规则排在后面。

3.3.3 域名与路径的组合转发

实际业务中常常需要同时基于域名和URL路径进行组合转发。例如,api.example.com/*转发到API服务器组,www.example.com/*转发到Web服务器组。配置时先添加域名规则,再在域名规则下添加路径子规则,实现多层级、精细化的流量分发控制。

3.4 后端服务器组配置

后端服务器组是接收SLB分发流量的实际工作节点。配置时需注意以下几点:

  • 添加ECS实例:在服务器组中选择要加入负载均衡的ECS实例。
  • 设置权重:为每个后端服务器设置权重值,权重越高被分配到的流量比例越大。权重设置应反映服务器的实际处理能力。
  • 配置后端端口:指定SLB将请求转发到后端ECS实例的哪个端口(如Web应用通常是8080或80)。

四、流量分发规则配置的代码实践

除了通过控制台进行可视化配置外,阿里云还提供了丰富的API和命令行工具,便于自动化运维和基础设施即代码(IaC)实践。

4.1 使用阿里云CLI配置SLB

阿里云CLI是管理云资源的命令行工具。以下是通过CLI创建ALB实例并配置监听和转发规则的示例:

# 创建ALB实例
aliyun alb create-loadbalancer --region cn-hangzhou --address-type Internet --address-allocated-mode Dynamic --loadbalancer-name my-web-alb --vpc-id vpc-xxxxx --vswitch-id vsw-xxxxx

# 创建服务器组
aliyun alb create-server-group --region cn-hangzhou --server-group-name web-servers --vpc-id vpc-xxxxx --server-group-type Instance

# 添加后端服务器到服务器组
aliyun alb add-servers-to-server-group --region cn-hangzhou --server-group-id sgp-xxxxx --servers '[{"ServerId":"i-xxxxx","Port":80,"Weight":100},{"ServerId":"i-yyyyy","Port":80,"Weight":80}]'

# 创建HTTP监听
aliyun alb create-listener --region cn-hangzhou --loadbalancer-id alb-xxxxx --protocol HTTP --listener-port 80 --server-group-id sgp-xxxxx

# 配置转发规则(基于路径)
aliyun alb create-rule --region cn-hangzhou --listener-id lsr-xxxxx --rule-name api-rule --priority 1 --rule-actions '[{"Type":"ForwardGroup","ForwardGroupConfig":{"ServerGroupTuples":[{"ServerGroupId":"sgp-api-xxxxx"}]}}]' --rule-conditions '[{"Type":"Path","PathConfig":{"Values":["/api/*"]}}]'

4.2 使用Terraform管理SLB配置

Terraform是广泛使用的基础设施即代码工具,以下是用Terraform配置ALB的示例:

resource \"alicloud_alb_load_balancer\" \"default\" {
  load_balancer_name = \"my-web-alb\"
  load_balancer_edition = \"Standard\"
  address_type = \"Internet\"
  address_allocated_mode = \"Dynamic\"
  vpc_id = \"vpc-xxxxx\"
  vswitch_id = \"vsw-xxxxx\"
  zone_mappings {
    vswitch_id = \"vsw-xxxxx\"
  }
}

resource \"alicloud_alb_server_group\" \"web\" {
  server_group_name = \"web-servers\"
  resource_group_id = \"rg-xxxxx\"
  protocol = \"HTTP\"
  vpc_id = \"vpc-xxxxx\"
  server_group_type = \"Instance\"
  servers {
    server_id = \"i-xxxxx\"
    server_type = \"Ecs\"
    port = 80
    weight = 100
  }
  servers {
    server_id = \"i-yyyyy\"
    server_type = \"Ecs\"
    port = 80
    weight = 80
  }
}

resource \"alicloud_alb_listener\" \"http\" {
  load_balancer_id = alicloud_alb_load_balancer.default.id
  listener_protocol = \"HTTP\"
  listener_port = 80
  default_actions {
    type = \"ForwardGroup\"
    forward_group_config {
      server_group_tuples {
        server_group_id = alicloud_alb_server_group.web.id
      }
    }
  }
}

4.3 使用阿里云SDK(Python示例)

通过阿里云Python SDK可以编程方式管理SLB配置:

from aliyunsdkcore.client import AcsClient
from aliyunsdkalb.request.v20200616 import CreateLoadBalancerRequest, CreateServerGroupRequest, CreateListenerRequest

client = AcsClient('your-access-key-id', 'your-access-key-secret', 'cn-hangzhou')

# 创建ALB实例
request = CreateLoadBalancerRequest.CreateLoadBalancerRequest()
request.set_LoadBalancerName('my-web-alb')
request.set_AddressType('Internet')
request.set_VpcId('vpc-xxxxx')
request.set_VSwitchId('vsw-xxxxx')
response = client.do_action_with_exception(request)
print(response)

五、流量分发规则配置最佳实践

5.1 多可用区部署保障高可用

创建SLB实例时建议选择多可用区部署,将后端ECS实例分布在不同可用区。当某个可用区发生故障时,SLB会自动将流量切换到其他可用区的正常服务器,保障业务连续性。

5.2 合理设置健康检查参数

健康检查参数需要根据业务特性精细调优。检查间隔不宜过短(避免产生过多探测流量),也不宜过长(无法及时感知故障)。建议检查间隔5-10秒,响应超时3-5秒,不健康阈值3次。健康检查路径应选择轻量级接口,避免对业务造成额外压力。

5.3 转发规则优先级管理

ALB按规则编号顺序逐条匹配,配置多个转发规则时需注意优先级。精确匹配的规则应放在通配规则前面。例如,/api/v1/users/*应排在/api/*之前,避免被通配规则提前匹配。

5.4 使用RAM子账号最小权限管理

建议使用RAM子账号进行SLB配置操作,遵循最小权限原则,仅授予必要的SLB管理权限(如AliyunSLBFullAccess)及ECS、VPC相关权限,避免主账号密钥泄露风险。

5.5 监控与告警配置

配置完成后应利用阿里云云监控服务设置SLB相关的告警规则,包括但不限于:QPS超限告警、后端服务器健康检查失败告警、实例带宽超限告警等。定期检查SLB的监控数据,及时发现并处理异常。

六、常见配置场景示例

6.1 场景一:单域名多路径分发

某电商网站www.example.com需要将/api/路径的请求转发到API服务器组(专门处理接口请求),其他请求转发到Web服务器组(渲染页面)。配置方案:在HTTP监听下添加两条转发规则——规则1匹配/api/*转发到API服务器组(优先级更高),规则2为默认转发到Web服务器组。

6.2 场景二:多域名多站点

同一SLB实例承载www.site1.com和www.site2.com两个独立网站。配置方案:在监听下添加两个域名转发规则,分别关联不同的服务器组。测试时可通过修改本地hosts文件将域名解析到SLB的VIP进行验证。

6.3 场景三:HTTP强制跳转HTTPS

为保证网站安全,需要将所有HTTP请求强制重定向到HTTPS。配置方案:创建HTTP(80端口)和HTTPS(443端口)两个监听,在HTTP监听中配置重定向转发规则,将所有请求重定向到HTTPS监听。后端服务器只需处理HTTPS流量,无需再配置SSL证书。

七、总结

阿里云SLB负载均衡的流量分发规则配置是一个从产品选型、实例创建、监听设置、调度算法选择、会话保持配置、健康检查调优到转发规则定义的系统工程。对于Web网站场景,推荐使用ALB产品,充分利用其基于域名和URL路径的七层转发能力。核心配置要点可概括为:选对产品类型、合理设置调度算法与权重、按业务需求配置会话保持、精细调优健康检查参数、善用域名与路径转发规则实现精细化流量分发。通过合理的配置与持续监控,SLB能够帮助网站轻松应对高并发访问,保障业务的高可用与稳定运行。

常见问题解答

问1:SLB的七层监听和四层监听有什么区别?

答:四层监听基于TCP/UDP协议,仅根据IP和端口转发流量,不解析应用层内容。七层监听基于HTTP/HTTPS协议,可以解析HTTP请求头中的域名、URL路径等信息,支持基于域名和URL路径的精细化转发规则。网站场景建议使用七层监听。

问2:加权轮询和加权最小连接数算法应该如何选择?

答:加权轮询适用于请求处理时间相对均匀的短连接场景,配置简单。加权最小连接数适用于长连接业务或各服务器负载差异较大的场景,能更均衡地分配实际负载。如果后端服务器处理能力差异明显,建议使用加权轮询并合理设置权重。

问3:配置了会话保持后为什么有时候会话还是会丢失?

答:可能的原因包括:会话保持超时时间设置过短,用户长时间无操作后会话失效;后端服务器发生故障被健康检查隔离,导致会话被迫转移到其他服务器;后端服务器数量发生变化(扩缩容),哈希取模结果改变导致路由变化。建议合理设置超时时间,并确保后端服务器具备会话共享机制(如Redis共享Session)。

问4:转发规则配置后不生效怎么办?

答:首先确认使用的是七层监听(HTTP/HTTPS),四层监听不支持转发规则。其次检查转发规则的匹配条件是否正确,ALB按规则编号顺序匹配,确保精确规则排在通配规则前面。最后确认后端服务器组已正确关联且后端服务器健康检查通过。

问5:CLB和ALB在转发规则配置上有什么主要差异?

答:CLB的七层监听支持基于域名和URL路径的转发,但功能相对基础。ALB支持更丰富的转发规则,包括重写、重定向、固定响应等高级动作,且ALB按规则编号顺序匹配,而CLB有自动域名精度排序机制。对于新业务建议优先选择ALB。

问6:如何验证SLB流量分发规则配置是否正确?

答:可以通过修改本地hosts文件将测试域名指向SLB的VIP进行访问测试;查看SLB的访问日志确认请求是否被转发到预期的后端服务器;利用阿里云云监控查看各后端服务器的流量分布情况。生产环境建议先在测试环境充分验证后再上线。

相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2026年阿里云代理商政策深度解析:战略级代理引领AI时代上云

2026年阿里云代理商政策深度解析:战略级代理引领AI时代上云

核心摘要本文全面解读阿里云2026年合作伙伴政策升级,聚焦新增「战略级代理」梯队的核心权益、「三维返点体系」的激励逻辑,以及从「销售驱动」到「AI价值驱动」的战略转型。结合上海汪远信息科技有限公司作为…