首页 今日新闻文章正文

百万并发实战:Nginx +LVS+ Keepalived架构方案!

今日新闻 2026年05月10日 05:45 12 aa

关注mikechen十余年BAT架构经验倾囊相授!

百万并发实战:Nginx +LVS+ Keepalived架构方案!

大家好,我是mikechen。


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

文章来源:mikechen.cc


百万并发方案

在互联网服务日益增长的今天,高并发、大流量场景已成为大型网站与分布式应用必须面对的挑战。

为了保证服务的高可用性、可扩展性与性能,常见的架构方案是将负载均衡与反向代理相结合。

百万并发实战中,Nginx + LVS + Keepalived 架构是一种常见的高并发、高可用解决方案。

百万并发实战:Nginx +LVS+ Keepalived架构方案!

其主要思路是利用LVS(Linux Virtual Server)做四层负载均衡,Keepalived负责LVS的高可用管理(比如VIP漂移)。

而Nginx作为七层负载均衡和反向代理,处理具体的HTTP/HTTPS请求和业务逻辑。


LVS负载入口

第一层 (负载均衡入口):LVS 集群 + Keepalived。

百万并发实战:Nginx +LVS+ Keepalived架构方案!

对外暴露 VIP,将请求分发到 Nginx 集群。

# IPVS virtual service for HTTPvirtual_server 10.0.0.10080{    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.1180{        weight 1        TCP_CHECK {            connect_timeout 3            connect_port 80}}     real_server 10.0.0.1280{        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 +LVS+ Keepalived架构方案!

# 检查 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 等),将请求分发到后端的应用服务器集群。

百万并发实战:Nginx +LVS+ Keepalived架构方案!

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.cc

发表评论

长征号 Copyright © 2013-2024 长征号. All Rights Reserved.  sitemap