Nginx是大型架构的必备技能,下面我重点详解Nginx主从技术@mikechen
Nginx主从复制
严格来说,Nginx本身并不提供数据库意义上的“主从复制”功能。
这里所说的“Nginx主从复制”,通常是指以Nginx为核心的主备/主从高可用架构。
主节点对外提供服务,从节点在主节点异常时接管流量,以保证业务连续性。

Nginx主从架构
整体架构,如下图所示:

VIP(虚拟IP)
│
┌───────┴───────┐
│ │
Nginx-A(Master) Nginx-B(Backup)
│ │
└────→ 后端服务集群 ←────┘
可以把架构拆成四层:
接入层:公网 VIP 或域名解析入口,客户端只认这个地址 。
Nginx 主节点:对外提供请求转发、SSL 终止、路由和限流 。
Nginx 备节点:待命状态,监控主节点健康并随时接管 。
后端服务层:真实业务集群,承接应用逻辑。
当主 Nginx 异常时,VIP 漂移到备用 Nginx,客户端无感或低感知切换 。
下面是一个典型的主备思路,不是完整生产模板,但能表达核心结构:
upstream backend_pool {
server 10.0.0.11:8080;
server 10.0.0.12:8080;
}
server {
listen 80;
server_name app.example.com;
location / {
proxy_pass http://backend_pool;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
主备两台机器的 Nginx 配置保持一致,再由 Keepalived 控制 VIP 归属,这样故障切换时客户端不需要修改访问地址。
Nginx主从原理
整理流程,如下:

- 正常情况下,VIP漂移到Nginx-A,所有请求由主节点处理。
- 主节点定期将Nginx配置同步到从节点,确保后者随时可接管。
- 当Nginx-A宕机或Nginx进程异常时,Keepalived检测到心跳失败。
- VIP自动切换到Nginx-B,从节点立即接管流量。
- 待Nginx-A恢复后,可重新同步配置并作为备用节点运行。