Nginx主从复制架构详解(图文全面总结)

Nginx是大型架构的必备技能,下面我重点详解Nginx主从技术@mikechen

Nginx主从复制

严格来说,Nginx本身并不提供数据库意义上的“主从复制”功能。

这里所说的“Nginx主从复制”,通常是指以Nginx为核心的主备/主从高可用架构。

主节点对外提供服务,从节点在主节点异常时接管流量,以保证业务连续性。

Nginx主从复制架构详解(图文全面总结)-mikechen

 

Nginx主从架构

整体架构,如下图所示:

Nginx主从复制架构详解(图文全面总结)-mikechen

        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主从原理

整理流程,如下:

Nginx主从复制架构详解(图文全面总结)-mikechen

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

评论交流
    说说你的看法