高并发是构建大型系统架构时必须面对的核心挑战之一。支撑百万级别的并发访问,是现代大型网站与分布式应用设计的关键目标。在众多解决方案中,Nginx、LVS 与 Keepalived 的组合以其卓越的性能、良好的扩展性和高可用性脱颖而出。
这套架构的核心分工非常明确:
- LVS(四层负载均衡):作为流量入口,运行在内核态,性能极高,负责抗住海量并发连接。
- Nginx(七层负载均衡):部署在后端,运行在用户态,负责精细化的 HTTP 协议处理、路由和业务逻辑。
- Keepalived(高可用保障):负责管理虚拟 IP(VIP),实现主备切换和节点健康检查,确保服务连续不中断。
其典型的流量路径可概括为:客户端 -> LVS(四层负载,抗并发) -> Nginx(七层负载,协议处理) -> 业务集群。
LVS:高性能的四层负载入口
LVS(Linux Virtual Server)工作在传输层(四层),其主要优势在于极高的转发性能。它仅负责转发 TCP/UDP 数据包,不解析应用层协议(如 HTTP),这使得它可以轻松支撑数十万甚至上百万的并发连接。
在实践中,常采用 DR(Direct Routing)模式来进一步提升性能。在此模式下,数据包经过 LVS 调度器转发后,由真实服务器直接响应给客户端,减少了调度器的带宽压力。
典型的 LVS 部署架构如下所示:

其部署通常涉及两台或以上的物理机或云主机作为 LVS Director(调度器),通过 Keepalived 实现主备。配置核心是使用 ipvsadm 工具设置 DR 模式下的转发规则。
Keepalived:实现高可用与健康检查
单一 LVS 节点存在单点故障风险,而 Keepalived 正是为了解决这一问题而引入。它基于 VRRP(虚拟路由器冗余协议)协议,在多台 LVS 节点之间进行主备选举,并统一对外提供一个虚拟 IP(VIP)。当主节点发生故障时,备份节点会自动接管 VIP,从而实现无缝切换,保障服务的高可用性。
此外,Keepalived 还可以对后端的真实服务器(或 Nginx)进行健康检查,自动将异常的节点从负载均衡池中移除,待其恢复后再重新加入,这是构建健壮 高可用架构 的重要环节。
一个典型的 Keepalived + Nginx 高可用接入层架构如下图所示:

Nginx:灵活的七层反向代理与应用网关
经过 LVS 第一层负载分担后,流量到达 Nginx 集群。Nginx 工作在应用层(七层),负责更精细化的流量管理,其核心职责包括:
- HTTP/HTTPS 协议解析与 SSL/TLS 卸载。
- 根据 URL、请求头等规则进行灵活的路由和反向代理。
- 实现限流、熔断、缓存、压缩等高级功能。
- 支持灰度发布、AB 测试等业务场景。
在这个架构中,Nginx 不直接承受最前端的“连接洪峰”,压力已被 LVS 缓冲,因此它可以更专注于业务逻辑的处理。其作为反向代理的简单示意如下:

整体架构视图
将上述组件组合起来,就形成了一个能够应对百万并发的完整、分层的负载均衡与高可用架构。一个多 Nginx 集群配合硬件或软件四层负载均衡器的架构全景,清晰地展示了从用户访问到最终应用服务器的完整路径,这对于 运维保障 和容量规划至关重要。

总结
Nginx + LVS + Keepalived 的架构组合,巧妙地利用了各自组件的优势,形成了分层解耦、职责清晰的部署模式。LVS 扛住海量连接,Nginx 处理复杂应用逻辑,Keepalived 保障全局高可用,三者协同工作,共同构建了支撑百万级并发访问的坚实基础设施。理解这一经典架构的设计原理与组件分工,是设计和维护大型高性能系统的关键一步。
|