负载均衡(LB Load Balancer)全面技术详解
本文从基础概念、分类、核心原理、主流算法、关键能力、主流产品、架构组合、调优排障全维度讲解,兼顾理论与运维实战,适配Web、接口、AI推理(vLLM/SGLang)等落地场景。
一、基础认知
1. 定义
负载均衡(LB) :将客户端海量访问流量,按照预设策略,分发到后端一组业务服务器集群 ,实现流量分摊、压力分散、故障容错、提升系统并发能力与整体可用性。
核心目标:化单点压力为集群压力,避免单服务器过载宕机。
2. 核心价值
- 高并发:单台服务器性能有限,多机集群分摊流量,支撑更大QPS;
- 高可用 :自动剔除故障节点,流量不中断,实现故障转移;
- 弹性扩容:业务上涨时直接新增后端节点,无需改动前端架构;
- 业务灰度/隔离:基于内容做路由,实现灰度发布、A/B测试、分区隔离;
- 性能优化:连接复用、SSL卸载、缓存、压缩,减轻后端服务压力。
3. 核心组成角色
- 客户端:浏览器、App、接口调用方、内部服务;
- 负载均衡器(LB):流量入口、转发中枢;
- 后端集群(Real Server):真实业务节点(你的 10.0.0.20 / 10.0.0.21 等)。
数据流:客户端 → LB → 后端服务器 → LB → 客户端
二、负载均衡三大实现形态
按部署形态分为三类,企业架构中经常组合使用。
1. 硬件负载均衡
专用物理设备,出厂即为LB硬件,性能强、稳定性高、功能完备。
- 代表产品:F5 BIG-IP、深信服、华为、华三、锐捷等
- 优点:吞吐极高、延迟低、安全防护强、运维简单;
- 缺点:价格昂贵、扩容不灵活、采购周期长;
- 适用:大型政企、金融、核心交易链路、高密并发核心入口。
2. 软件负载均衡
基于通用服务器 + 开源/商业软件实现,成本低、灵活、可快速扩容。
(1)四层软件LB(传输层)
- 代表:LVS (Linux Virtual Server)
- 特点:工作在内核态,转发性能极致,几乎无性能瓶颈;只处理IP+端口,不解析应用协议。
(2)七层软件LB(应用层)
- 代表:Nginx、HAProxy、Apache Traffic Server
- 特点:解析HTTP/HTTPS协议,功能丰富,支持路由、改写、会话保持、限流、WAF等。
3. 云负载均衡(公有云托管LB)
云厂商提供的托管式LB服务,开箱即用,无需自建硬件/软件。
- 命名:SLB(服务器负载均衡)、CLB、ALB、NLB
- NLB:四层负载均衡
- ALB:七层应用负载均衡
- 代表:阿里云SLB、腾讯云CLB、华为云ELB
- 优点:免运维、弹性伸缩、自带高可用、和云网络深度打通;
- 适用:云上业务、互联网公司、快速上线场景。
三、按OSI层级划分:四层LB vs 七层LB(核心重点)
这是LB最核心的技术分类,决定转发能力、功能边界、性能开销。
OSI 是国际标准化组织定义的网络通信七层架构,把两台设备之间的数据传输,按功能拆成 7 个层级,每层只干自己的事、上下层分工协作。

1. 四层负载均衡(L4,传输层:TCP/UDP)
工作位置
基于 IP + 端口 转发,不解析应用层报文,只看TCP/UDP头部。
工作流程
- 客户端发起TCP连接到LB;
- LB根据算法选定一台后端RS;
- LB建立与后端的TCP连接;
- 两端TCP通道打通,后续所有报文直接透传,LB不再拆包解析。
核心特点
- ✅ 性能极强、延迟极低、吞吐大;
- ✅ 内核转发,CPU开销极小;
- ❌ 看不到HTTP内容:URL、Cookie、Header、Host、请求参数一律不识别;
- ❌ 无法做精细化路由、内容过滤、SSL解密。
典型产品 & 场景
- 产品:LVS、F5四层模式、云NLB
- 适用:数据库、Redis、MQ、SSH、TCP长连接、非HTTP类服务、全站一级入口。
2. 七层负载均衡(L7,应用层:HTTP/HTTPS)
工作位置
完整解析 HTTP/HTTPS 应用协议 ,读取请求内容后再转发,也叫应用层代理。
工作流程
- 客户端连接LB,发送完整HTTP请求;
- LB解析请求头、URL、Cookie、Host、Body;
- 根据算法+内容策略选择后端节点;
- 转发请求到后端,接收响应,回传给客户端。
核心特点
- ✅ 功能极强:路径路由、域名路由、URL改写、会话保持、SSL卸载、限流、缓存、黑白名单;
- ✅ 可按业务逻辑做流量分发(灰度、A/B、接口隔离);
- ❌ 需要拆包/组包,有一定CPU开销,性能弱于四层;
典型产品 & 场景
- 产品:Nginx、HAProxy
- 适用:Web网站、HTTP接口、微服务、大模型推理服务(vLLM/SGLang)、小程序/App后端。
3. 四层与七层核心对比表
| 对比项 | 四层LB(L4) | 七层LB(L7) |
|---|---|---|
| 解析层级 | IP+端口,不拆应用包 | 完整解析HTTP/HTTPS |
| 性能开销 | 极低 | 中等 |
| 延迟 | 更小 | 略高 |
| 路由能力 | 仅端口转发 | 域名/URL/Cookie/请求头路由 |
| SSL解密 | 不支持 | 支持(SSL卸载) |
| 会话保持 | 基于IP | 基于IP/Cookie/Header |
| 典型产品 | LVS、F5-NLB、云NLB | Nginx、HAProxy、云ALB |
四、Nginx 负载均衡深度解析
Nginx 是Web服务 + 反向代理 + 七层LB 三合一,依靠 ngx_http_upstream_module 实现负载均衡。
1. 基础配置结构
nginx
# 定义后端服务器集群
upstream backend_server {
server 10.0.0.20:8080; # 后端节点1
server 10.0.0.21:8080; # 后端节点2
}
server {
listen 80;
server_name lb.test.com;
# 全部转发到上游集群
location / {
proxy_pass http://backend_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
2. 六大主流负载分发算法
(1)轮询 Round Robin(默认算法)
- 规则:请求按连接顺序 依次分发到后端节点,
20 → 21 → 20 → 21循环; - 特性:
- 无权重时,理论连接数均衡;
- 按「TCP连接」分发,不是按「单次请求」分发;
- HTTP长连接(
keepalive)下:一条连接承载几十上百次请求,日志会出现单节点请求扎堆(你之前遇到的现象)。
- 适用:后端服务器硬件性能一致、无会话要求的场景。
(2)加权轮询 Weighted Round Robin (WRR)
在轮询基础上增加 weight 权重,权重越高,分到的流量越多。
nginx
upstream backend {
server 10.0.0.20 weight=2;
server 10.0.0.21 weight=1;
}
- 流量比例近似 2:1;
- 适用:后端服务器性能不均,高配机器承担更多流量。
(3)最少连接 Least Connections
nginx
upstream backend {
least_conn; # 开启最少连接算法
server 10.0.0.20;
server 10.0.0.21;
}
- 规则:优先将新连接分发给当前活跃连接数最少的节点;
- 特性:自动适配后端性能差异,慢节点连接会逐步堆积,流量自动流向快节点;
- 适用:请求处理时长差异大的服务(接口、AI推理、长任务)。
(4)IP 哈希 ip_hash(会话保持常用)
nginx
upstream backend {
ip_hash; # 开启IP哈希
server 10.0.0.20;
server 10.0.0.21;
}
- 规则:对客户端源IP做哈希运算,同一IP永远定向到同一台后端;
- 作用:保证会话绑定,用户登录状态不丢失;
- 致命问题 :
内网/NAT出口、办公网、统一网关出口场景,大量用户共用同一个公网IP ,所有流量压到单台节点,出现严重倾斜(你日志偏向20服务器的最常见原因)。
(5)URL 哈希 url_hash
按请求URL做哈希,相同URL固定转发到同一节点;
- 适用:静态资源、缓存服务,提升缓存命中率。
(6)fair 第三方算法(需插件)
根据后端响应时间分配流量,响应越快优先分配流量;适合动态接口、时延差异大的服务。
五、LB 核心配套能力
1. 健康检查 Health Check
LB 持续探测后端节点状态,自动摘除故障节点、恢复正常节点,实现故障转移。
Nginx 健康检查参数
nginx
server 10.0.0.20 max_fails=2 fail_timeout=30s;
max_fails:最大失败次数,连续失败N次则标记节点不可用;fail_timeout:节点被摘除后,间隔多久重新尝试探测;
现象
后端 21 出现超时、5xx、宕机 → 被LB摘除 → 所有流量全部打向20,日志完全倾斜。
2. 会话保持 Session Affinity
让同一用户多次请求始终落在同一后端,分为三类:
- IP绑定:ip_hash(Nginx默认方式);
- Cookie绑定:LB植入Cookie,按Cookie路由(推荐,不受NAT影响);
- Header绑定:基于自定义请求头做绑定。
建议:业务无会话依赖时关闭会话保持,流量分布最均衡。
3. 长连接 Keepalive
分为两段:
- 客户端 ↔ LB 长连接;
- LB ↔ 后端RS 长连接。
- 作用:复用TCP连接,减少握手开销,大幅提升QPS;
- 副作用:一条连接承载大量请求,请求粒度分布不均,是日志倾斜的重要原因。
4. 限流 & 熔断
LB 层实现全局限流、单节点限流、IP黑白名单,防止突发流量打垮集群。
5. SSL 卸载
HTTPS 解密/加密统一由LB承担,后端直接跑HTTP,减轻后端CPU压力(七层LB专属能力)。
6. 反向代理 & 头部改写
透传真实客户端IP、域名,保证后端服务获取真实访问信息。
六、主流企业架构组合(分层LB架构)
生产环境极少单用一层LB,普遍采用多级分层架构,各司其职。
架构1:四层LB + 七层LB(最经典)
用户 → 四层LB(LVS/F5/NLB) → 七层LB(Nginx/HAProxy) → 后端应用
- 四层LB:承接全网大流量,抗DDOS、做端口转发,性能拉满;
- 七层LB:做应用层路由、灰度、会话、SSL、限流,精细化治理。
架构2:纯七层集群
中小型业务、微服务、AI推理集群:
用户 → Nginx集群 → 业务服务/vLLM/SGLang
架构3:服务内部负载均衡(内网LB)
微服务之间调用:使用 Nginx/HAProxy / 服务注册发现(Feign/Nacos) 做内网负载。
七、学习总结 & 知识脉络梳理
- LB 本质:流量转发调度器,分摊压力、提升可用;
- 两大层级:四层(IP+端口,高性能)、七层(HTTP解析,功能强);
- Nginx 定位 :标准七层负载均衡器,依靠 upstream 实现集群转发;
- 核心算法:轮询、加权轮询、最少连接、IP哈希(重点区分适用场景与副作用);
- 分布不均根因 :优先排查
ip_hash、长连接、健康检查、权重、后端性能; - 企业架构 :主流采用 L4 + L7 分层部署,兼顾性能与功能。