百万并发架构方案:LVS+Nginx+Keepalived高可用!

高并发是大型架构核心,下面我详解百万并发架构方案@mikechen

百万并发架构

在构建面向百万级并发访问的服务架构时,必须兼顾高可用性、负载均衡、扩展性与运维简便性。

LVS(Linux Virtual Server)、Nginx 、与 Keepalived 的组合是成熟且常见的解决方案。

百万并发架构方案:LVS+Nginx+Keepalived高可用!-mikechen

 

Keepalived → 保证 LVS 不挂;

LVS → 抗连接洪峰;

Nginx → 七层分流 + 动静分离;

后端 → 真正业务处理。

 

 

整体架构设计

百万并发架构方案:LVS+Nginx+Keepalived高可用!-mikechen

     Client
        │
 ┌─────────────┐
 │ VIP (漂移IP) │
 └──────┬──────┘
    Keepalived
  ┌─────────────┐
  │   LVS 主备   │
  └──────┬──────┘
     四层转发
┌───────────────┐
│   Nginx 集群   │
└──────┬────────┘
     反向代理
┌───────────────┐
│  后端应用集群  │
└───────────────┘

 

LVS前端:

两台 LVS(director)+ Keepalived 组成高可用负载均衡入口,提供一个 VIP(对外唯一 IP)。

LVS 使用 DR 模式,将请求分发到多台 Nginx。DR 模式仅改 MAC,不改 IP,性能高、适合大并发。

LVS 本质是:

Linux 内核里的 IPVS (IP Virtual Server)

工作在网络层,不做应用解析。

百万并发架构方案:LVS+Nginx+Keepalived高可用!-mikechen

特点:

不解析 HTTP

不处理请求内容

只做 TCP/UDP 转发

因此:

CPU 消耗极低

单机可支撑几十万 ~ 百万连接。

 

后端高可用:

多台 Nginx 组成七层负载均衡集群,负责 HTTP/HTTPS 终止。

反向代理、压缩、缓存、限流等,再转发给后端 Web/应用集群。

后端:

多台 Web / 应用服务器,后面再接缓存、消息队列、数据库读写分离等(根据业务扩展)。

百万并发架构方案:LVS+Nginx+Keepalived高可用!-mikechen

高可用:

Keepalived 在 LVS 层做 VRRP 漂移 VIP,主 LVS 宕机时自动切到备节点。

LVS 通过 Keepalived 内置的健康检查把故障 Nginx 从集群摘除。

 

高并发优化

LVS优化:使用DR模式,避免NAT瓶颈;调整算法为wrr(加权轮询);启用IPVS SyncD同步多LVS节点。

百万并发架构方案:LVS+Nginx+Keepalived高可用!-mikechen

Nginx优化:设置worker_processes auto、worker_connections 65535;

启用epoll模型;添加gzip压缩和缓存。单机Nginx可达10万+并发,集群扩展到百万。

系统调优:扩展端口范围net.ipv4.ip_local_port_range = 1024 65535;

增加文件描述符ulimit -n 100000;监控连接ipvsadm -lnc。

扩展策略:横向添加Nginx/Web节点;使用健康检查动态剔除故障;结合CDN分担静态资源。

性能指标:LVS处理能力是Nginx的10倍以上,适合入口层;Keepalived确保<1s故障切换。

评论交流
    说说你的看法