Nginx如何实现亿级高可用架构?
关注△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万字《阿里架构师进阶专题合集》里面。


LVS和Nginx结合有啥优势?
VRRP协议具体怎么运行的?
收藏了,感谢分享