百万级并发架构全解:LVS + Nginx + Keepalived架构图解!

百万级负载架构是大型架构经常涉及的,下面我重点来详解如何实现百万级负载架构@mikechen

百万级并发架构

在大型网站、或高流量系统中,如何实现高并发、高可用、负载均衡是架构师必须面对的问题。

今天,我们来详解一套实战验证无数次的高并发架构组合:LVS + Nginx + Keepalived。

这套解决方案,被广泛用于电商、直播、门户…等对高可用性要求极高的业务中。

整体架构,如下图所示:

百万级并发架构全解:LVS + Nginx + Keepalived架构图解!-mikechen

LVS集群作为最前端入口,负责四层负载均衡。

Nginx集群作为中间层,负责七层负载均衡、反向代理、静态资源处理。

后端多台Web/应用服务器集群。

Keepalived确保LVS层和Nginx层的高可用。

 

LVS

LVS(Linux Virtual Server):是一种基于Linux内核的四层负载均衡解决方案,主要用于将外部请求高效地分发到后端服务器集群中。

LVS 凭借内核级转发、极高的性能和稳定性,成为大型互联网和高可用集群的首选流量分发组件。

百万级并发架构全解:LVS + Nginx + Keepalived架构图解!-mikechen

LVS 直接在内核空间处理转发,极大减少了上下文切换和资源消耗,单机可支撑百万级并发连接。

LVS 集群 (LVS Cluster):LVS Master (Director Server)+LVS Backup (Director Server)。

LVS Master:负责接收所有VIP上的请求,并通过LVS的DR模式(推荐),将请求直接转发给Nginx集群中Nginx服务器。

LVS Backup:处于待命状态,一旦Master发生故障。

Keepalived会提升Backup为Master,并接管VIP,实现服务无缝切换。

 

Nginx

Nginx接收LVS转发的请求,并进行七层处理。

比如:HTTP请求解析、URL重写、SSL卸载、会话保持、缓存…等。

百万级并发架构全解:LVS + Nginx + Keepalived架构图解!-mikechen

worker_processes auto;

events {
    worker_connections 10240;
    use epoll;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile on;
    keepalive_timeout 65;

    gzip on;
    gzip_types text/plain application/json application/javascript text/css;

    upstream backend {
        server 192.168.10.101:8080 max_fails=2 fail_timeout=10s;
        server 192.168.10.102:8080 max_fails=2 fail_timeout=10s;
        keepalive 32;
    }

    server {
        listen 80;
        server_name localhost;

        location / {
            proxy_pass http://backend;
        }

        location /health {
            return 200 'ok';
            add_header Content-Type text/plain;
        }
    }
}

Nginx再将请求,负载均衡到后端的Web/App服务器集群。

 

Keepalived

Keepalived 是一个用于实现服务高可用性(High Availability,HA)的软件,主要在 Linux 平台上运行。

LVS虽然性能卓越,但LVS Director Server本身也存在单点故障问题。

为了解决这个问题,我们需要引入Keepalived,为LVS集群提供高可用性。

百万级并发架构全解:LVS + Nginx + Keepalived架构图解!-mikechen

与 LVS 结合,实现 LVS 节点的主备高可用,确保 VIP 始终可用。

与 Nginx 结合,保证 Nginx 故障后,VIP 自动切换至备用节点。

评论交流
    说说你的看法