什么是Keepalived
Keepalived 是一个用 C 语言编写的路由软件,它的主要目标是为 Linux 系统和 Linux 基础设施提供负载均衡和高可用性。
主要功能包括:
-
实现主备切换(故障转移);
-
提供虚拟 IP(VIP)漂移机制;
-
主服务器出现故障时,自动将虚拟 IP(VIP)切换到备用服务器;
-
监控后端服务存活状态。
Nginx Keepalived原理
Nginx 是一个高性能的 反向代理 和 负载均衡 软件,负责接收客户端请求并分发到后端服务器。
Keepalived 则通过 VIP 和 VRRP 协议为 Nginx 提供 高可用性,确保 Nginx 服务在单点故障时不中断。
当主服务器上的 Nginx 发生故障时,Keepalived 会将 VIP 切换到备用服务器,确保客户端请求能够继续被处理。
整体架构,如下图所示:
在 Nginx Keepalived 架构中,通常配置两台或多台服务器,一台为主服务器,其余为备用服务器。
主服务器负责处理主要的 Web 请求,备用服务器作为备份。
虚拟 IP(VIP)是客户端访问的统一入口,正常情况下绑定在主服务器上。
整体配置,如下所示:
+-------------------------+ | 虚拟IP(VIP) | +-----------+-------------+ | +----------+----------+ | | +-------v-------+ +-------v-------+ | Nginx主节点 | | Nginx备节点 | | (Master) | | (Backup) | +---------------+ +---------------+ | | +---v---+ +----v----+ | 后端服务池 | | 后端服务池 | +--------+ +---------+
工作机制,如下:
-
正常时:主节点绑定 VIP,对外提供服务;
-
故障时:Keepalived 检测主节点异常;
-
切换时:VIP 自动漂移到备节点,服务不中断;
-
对客户端而言始终访问 VIP,不感知后端变更。
通过 Keepalived 的故障检测和切换功能,Nginx 服务可以在主服务器故障时快速切换到备用服务器,确保服务的可用性。