百万并发架构场景
在面对百万级并发访问的互联网业务时,单一服务器难以承载高并发、与高可用需求。
Nginx + LVS + Keepalived 架构 ,通常用于构建能够处理百万并发请求的四层(网络层)和七层(应用层)结合的系统。

客户端(公网流量) ↓ LVS 主节点 (VIP: e.g., 192.168.1.100) ←→ LVS 备节点 (Keepalived 管理切换) ↓ (DR模式转发) Nginx 集群 (e.g., 192.168.1.11~13, 每个Nginx绑定VIP到lo:0接口) ↓ (七层代理) 后端应用服务器(如Tomcat集群)
这是一个典型的四层 + 七层组合的高并发高可用方案。
前面用 LVS 做四层负载均衡 、与Keepalived 做 VIP 漂移、和故障切换;
后面用 Nginx 集群做七层反向代理、和动静分离,可以稳定支撑百万级并发连接。
LVS层架构设计
LVS 工作在内核态,可实现非常高的包转发性能,适合百万级连接。

主要:处理入口流量,四层转发到Nginx集群,避免Nginx直接暴露公网。
在高并发实战中,LVS-DR 模式是最常用的。
LVS 将客户端请求的 MAC ,改为目标服务器 MAC 并在二层直接转发。
后端服务器,用真实 IP 回复客户端(无需再次经过 LVS)。
消耗最低、吞吐大、后端响应不走负载节点,转发开销小,适合高吞吐场景。
Nginx层架构设计
Nginx 在此架构中扮演第二级(七层)负载均衡,和反向代理的角色。

七层处理(如URL路由、会话保持),横向扩展支持高并发。
worker_processes auto; # 根据CPU核心
worker_connections 65535; # 最大连接数
http {
upstream backend {
server 192.168.1.201:8080 weight=1; # 后端Tomcat
server 192.168.1.202:8080 weight=1;
keepalive 64; # 长连接
}
server {
listen 80;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
health_check; # 内置健康检查
}
location /health { # LVS健康检查接口
return 200 'OK';
}
}
}
Keepalived架构设计
主要用于:监控LVS和Nginx状态,主节点故障时VIP漂移到备节点,切换时间<1秒。
因为:LVS 和Nginx,本身不具备健康检查、和高可用能力。

vrrp_script chk_nginx { # 检查Nginx脚本
script "/etc/keepalived/check_nginx.sh"
interval 2
weight -5
fall 3
rise 2
}
Keepalived 提供 VIP 主备切换,结合健康检查快速剔除故障节点,保障服务连续性。
mikechen睿哥
10年+一线大厂架构实战专家,就职于阿里、淘宝等一线大厂,操盘多个亿级大厂核心项目。