高并发是大型架构的核心,下面我重点详解百万并发实战方案@mikechen
百万高并发
在互联网服务日益增长的今天,高并发、大流量场景已成为大型网站与分布式应用必须面对的挑战。
为了保证服务的高可用性、可扩展性与性能,常见的架构方案是将负载均衡与反向代理相结合。
百万并发实战中,Nginx + LVS + Keepalived 架构是一种常见的高并发、高可用解决方案。

其主要思路是利用LVS(Linux Virtual Server)做四层负载均衡,Keepalived负责LVS的高可用管理(比如VIP漂移)。
而Nginx作为七层负载均衡和反向代理,处理具体的HTTP/HTTPS请求和业务逻辑。
LVS负载入口
第一层 (负载均衡入口):LVS 集群 + Keepalived。

对外暴露 VIP,将请求分发到 Nginx 集群。
# IPVS virtual service for HTTP
virtual_server 10.0.0.100 80 {
delay_loop 5
lb_algo rr # rr | lc | wlc | dh | sh | sed | nq
lb_kind DR # DR (DIRECT), NAT, TUN
persistence_timeout 300
protocol TCP
real_server 10.0.0.11 80 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 80
}
}
real_server 10.0.0.12 80 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 80
}
}
}
由于LVS,工作在第 4 层(传输层),通过 IPVS 内核模块实现转发。
具备极高的吞吐与低延迟,适合作为集群入口来承载海量并发连接。
Keepalived(高可用与健康检查)
Keepalived 是一个基于 VRRP (Virtual Router Redundancy Protocol), 协议的开源软件。
它通过选举机制在多台服务器中,指定一个 Master (主) 节点、和多个 Backup (备) 节点。
Keepalived 会为 Master 节点绑定一个虚拟 IP 地址,所有外部请求都通过这个 VIP 访问。
如下图所示:

# 检查 Nginx 状态的脚本
vrrp_script chk_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2
weight -20 # 如果 Nginx 宕机,降低优先级
}
Master 、和 Backup 节点之间,会不断发送 VRRP 协议的心跳包。
如果 Master 节点宕机,Backup 节点将检测不到心跳。
此时,它会接管 VRRP IP,自动成为新的 Master,继续提供服务。
整个过程对用户是透明的,实现了服务的无缝切换。
Nginx(七层反向代理与应用交付)
Nginx 部署在多台服务器上,作为反向代理服务器接收外部请求。
并根据预设的负载均衡算法(如轮询、加权轮询、IP Hash 等),将请求分发到后端的应用服务器集群。

http {
upstream backend_servers {
server 192.168.1.100 weight=5; # 后端服务器1
server 192.168.1.101 weight=5; # 后端服务器2
server 192.168.1.102 weight=5; # 后端服务器3
}
server {
listen 80;
server_name your_domain.com;
}
}
这不仅能分散请求压力,还能隐藏后端服务器的真实 IP 地址,提升安全性。
mikechen睿哥
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。