百萬并發實戰:Nginx +LVS+ Keepalived架構方案!
百萬并發方案
在互聯網服務日益增長的今天,高并發、大流量場景已成為大型網站與分布式應用必須面對的挑戰。
為了保證服務的高可用性、可擴展性與性能,常見的架構方案是將負載均衡與反向代理相結合。
百萬并發實戰中,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.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 狀態的腳本
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 地址,提升安全性。



























