百万级高并发架构实战:LVS+Nginx+Keepalived三层负载均衡详解!

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

百万并发并发架构

对于百万级并发场景,单点服务器或简单的负载均衡方案,往往难以承受突发流量,也无法保证业务连续性。

因此,通常需要采用分层架构,将流量调度、应用处理与故障切换职责拆分,并通过成熟组件组合实现稳定运行。

百万级高并发架构实战:LVS+Nginx+Keepalived三层负载均衡详解!-mikechen

LVS、Nginx 与 Keepalived 的组合,正是较为经典且实用的高可用架构方案。

 

百万并发并发架构设计

该方案通常分为三层:

百万级高并发架构实战:LVS+Nginx+Keepalived三层负载均衡详解!-mikechen

Client
  ↓
VIP(Keepalived漂移)
  ↓
LVS(四层负载均衡)
  ↓
Nginx集群(七层反向代理)
  ↓
应用服务集群(Java / Go / PHP)
  ↓
Redis / DB / MQ

这种分工的优势在于:LVS 具备极高的转发效率,适合作为第一入口;

Nginx 灵活性强,能够根据域名、URL、Header 等进行精细化调度;

Keepalived 则确保任一关键节点异常时,业务入口仍可对外提供服务。

 

LVS+Keepalived 

LVS 负责四层负载均衡,承担海量连接的接入与分发。

2 台 LVS 节点(主备),使用 DR 模式(推荐,性能最高),绑定 VIP(Virtual IP)。

LVS 负责四层负载均衡,将流量分发到 Nginx 集群。

百万级高并发架构实战:LVS+Nginx+Keepalived三层负载均衡详解!-mikechen

Keepalived 负责高可用切换,通过 VRRP 机制保障入口节点故障时快速漂移 VIP。

global_defs {
    router_id LVS_MASTER
}

vrrp_script chk_nginx {  # 可监控 Nginx 进程
    script "/etc/keepalived/check_nginx.sh"
    interval 2
    weight -20
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100/24
    }
    track_script {
        chk_nginx
    }
}

virtual_server 192.168.1.100 80 {  # 或 443
    delay_loop 6
    lb_algo rr
    lb_kind DR
    protocol TCP
    real_server 192.168.1.10 80 {  # Nginx1
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    # 再添加其他 Nginx real_server
}

 

Nginx+系统内核优化

Nginx 负责七层负载均衡与反向代理,处理 HTTP/HTTPS 请求并进一步分流。

3~10+ 台 Nginx 节点(可水平扩展),负责七层反向代理、负载均衡、缓存、SSL 卸载、限流等。

百万级高并发架构实战:LVS+Nginx+Keepalived三层负载均衡详解!-mikechen

后端业务服务器集群(Tomcat、Golang、Java Spring Boot 等),可进一步用 Nginx 或其他 LB 均衡。

upstream backend {
    least_conn;  # 或 ip_hash
    server app1:8080 weight=5 max_fails=3 fail_timeout=30s;
    server app2:8080 weight=5;
    keepalive 32;  # 连接复用
}

server {
    listen 80;
    server_name _;

    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
    }
    
    # 静态资源、缓存、限流等配置...
}

系统内核优化(LVS/Nginx 节点)

关键性能优化参数:

# 端口范围扩展
net.ipv4.ip_local_port_range = 1024 65535

# 连接数限制
net.core.somaxconn = 65535

# ARP 优化(避免脑裂)
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

 

评论交流
    说说你的看法