百万级并发场景
在处理百万级并发场景下,单一负载均衡器往往难以满足性能需求。
LVS(Linux Virtual Server):作为四层负载均衡器(基于TCP/UDP)。
擅长高吞吐量和低开销的分发,能轻松支撑百万级并发连接。

而Nginx作为七层负载均衡器(基于HTTP/HTTPS),更适合处理应用层逻辑。
如URL路由、内容缓存和SSL终止。
将两者结合成双层架构,能充分发挥各自优势。
第一层:LVS (Layer 4 – 传输层)
第一层(LVS):部署在网络边缘,负责四层 IP/端口层面的高效包转发与会话保持。
LVS 通过虚拟 IP(VIP)接收流量,并将连接采用 NAT、DR 或 TUN 模式转发到后端的 Nginx 节点。
发挥内核态转发的极高性能,减轻上层负载。

┌────────────┐
│ Client │
└─────┬──────┘
│
┌─────────▼─────────┐
│ LVS (主/备) │ L4
│ Keepalived VIP │
└─────────┬─────────┘
│
┌───────────▼───────────┐
│ Nginx 集群 │ L7
│ SSL / 路由 / 限流 │
└───────────┬───────────┘
│
┌─────────────▼─────────────┐
│ 应用服务集群 │
└───────────────────────────┘
LVS 直接在内核空间处理报文,不建立 TCP 连接,只负责数据包的转发。
其效率极高,单台 LVS 配合高性能网卡,可支撑数十万甚至上百万的并发。
通常采用 Keepalived ,实现双机热备(Active-Standby)。
第二层:Nginx (Layer 7 – 应用层)
第二层(Nginx):部署多台 Nginx 作为七层网关。
承担 SSL/TLS 终止、HTTP 路由、请求拆分、静态缓存、限流与熔断等应用层功能。
Nginx 能结合健康检查和权重策略,对真实应用服务器(应用池)做细粒度调度与流量控制。

worker_processes auto;
worker_rlimit_nofile 200000;
events {
use epoll;
worker_connections 65535;
multi_accept on;
}
Nginx 接收来自 LVS 的流量,进行 SSL 解密、URL 匹配、Header 修改、黑名单过滤、Gzip 压缩等复杂操作。
可以水平扩展 Nginx 集群,LVS 通过算法(如轮询、加权轮询),将流量均匀分发给后端的各个 Nginx 实例。
mikechen睿哥
10年+一线大厂架构实战经验,操盘多个亿级大厂核心项目,就职于阿里、淘宝等一线大厂。