Nginx如何实现亿级高可用架构?

2026年01月20日/ 浏览 12

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

大家好,我是mikechen。

Nginx是大型架构的必备中间件,下面我就重点来详解Nginx高可用@mikechen

文章来源:mikechen.cc

Nginx高可用

大型架构都会用到负载均衡,Nginx基本可以说是流量的入口,所以Nginx的高可用就非常的重要了。

负载均衡的高可用,一般会结合与 LVS(Linux Virtual Server)、Nginx结合,实现高可用负载均衡架构。

如下图所示:

这里核心是:通过Keepalived 监控各个节点的健康状态,并根据优先级和故障检测,实现 VIP 在主节点和备节点之间的自动漂移。

在集群中,只有一个节点持有 VIP,当主节点宕机时,VIP 会迅速迁移到备份节点,从而保证服务的连续性和稳定性。

为什么需要 Keepalived

随着互联网应用的不断发展,单点故障已成为影响系统稳定性的主要问题之一。

在高并发、高可用性的生产环境中,任何单点故障都可能导致服务的中断,从而影响用户体验或企业的正常运营。

Keepalived 可以帮助解决以下问题:

单点故障通过高可用的架构设计,确保在主服务器出现故障时,服务能够自动转移到备用服务器,避免服务中断。故障自动恢复通过自动化的故障检测和恢复机制,减少人工干预,提升系统的稳定性。提高系统可靠性Keepalived 可以在不同的服务器之间实现 VIP 的动态切换,增强系统容错能力和负载均衡能力。

Nginx高可用架构

整体架构,如下图所示:

LVS 将流量分发到 nginx01 (172.27.9.91) 和 nginx02 (172.27.9.92)。

LVS 工作在四层(TCP/IP 层),转发效率很高,Nginx 负责七层代理(缓存、路由等)。

Keepalived 检测心跳,秒级漂移 VIP。

Keepalived 主要通过 VRRP 协议实现高可用性,在 VRRP 协议中,集群中的多个节点会共享一个虚拟 IP(VIP),该 IP 始终指向当前活动节点。

主节点和备节点

集群中会有一个主节点(Master)和一个或多个备节点(Backup)。

主节点负责持有虚拟 IP,提供服务,备节点则监控主节点的健康状况。

健康检查

备节点通过 VRRP 协议定期与主节点交换心跳信息。

如果主节点没有响应,备节点会将虚拟 IP 升级为活动节点,并开始提供服务。

VIP 漂移

当主节点发生故障时,VIP 会从主节点漂移到备节点,继续提供服务,保证业务不中断。

关键组件:

vrrp_instance

:定义 VRRP 实例,设置主备状态、优先级等信息。

vrrp_script

:定义健康检查脚本,用于定期检查主节点的运行状态。

通过定期的健康检查,Keepalived 确保主节点宕机时,VIP 可以无缝地漂移到备份节点上。

Keepalived结合与 LVS 、Nginx配合使用,来搭建高可用负载均衡架构。

以上

本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。

picture loss