负载均衡在大型架构被广泛使用,下面我重点详解主流负载均衡选型对比@mikechen
LVS
LVS(Linux Virtual Server):基于内核层实现四层(L4)负载均衡。

LVS:因在内核层转发,CPU开销极低,能够支撑数十万以上并发连接。
逻辑简单,抗冲击能力极强。在大厂架构中,它通常作为整个机房的流量总入口。
但是,业务逻辑零感知。
无法根据 URL、Header 或 Cookie 做分发,也不支持复杂的 ACL 过滤。
配置复杂,需要依赖 Keepalived 实现高可用。
Nginx
Nginx起源于HTTP反向代理与静态资源服务器,工作在用户态的七层(L7)或四层代理(通过stream模块)上。
Nginx既可做反向代理、负载均衡,也支持缓存、SSL终端与请求路由。

但是,性能有上限。
由于是应用层代理,涉及完整的 TCP 握手和数据拷贝,其极限 QPS 虽高,但仍无法与 LVS 相比。
资源占用: 在维持数百万长连接时,内存消耗会显著高于 LVS。
HAProxy
专注高性能负载均衡,既支持四层(TCP)也支持七层(HTTP)代理,擅长连接管理、健康检查和会话保持。

相比Nginx,静态资源处理与Web服务器功能较弱,需要与静态资源服务结合使用。
配置复杂策略时有一定学习曲线;在TLS、缓存等方面,仍需与其他组件配合以实现完整功能。
三者对比

| 组件 | 层级 | 核心定位 |
|---|---|---|
| Nginx | 七层(L7) | 应用层网关(HTTP处理) |
| LVS | 四层(L4) | 流量入口(高性能转发) |
| HAProxy | 四层 + 七层 | 专业负载均衡调度器 |
本质区别一句话:
LVS:抗流量;
如果是百万并发、纯四层转发、入口层抗压,LVS 更合适,因为它性能边界更高,且更适合承担大流量入口。
Nginx:懂业务;
如果是Web 网站、API 服务、静态资源、URL 分流、缓存和 SSL 终止,Nginx 更合适,因为它对 HTTP 业务的支持最完整。
HAProxy:会调度。
如果是需要兼顾四层与七层、还要更强健康检查和会话控制,HAProxy 往往是更均衡的选择。