在我们的架构体系中,后端服务器经常会前置一台Nginx服务器做反向代理,把请求分发到后端服务器,也就是常见的负载均衡,如下

但是这里存在一个单点故障的问题,如果前置的Nginx挂掉了,请求便无法到达后端服务器,整个后端服务便不可用了

我们的解决思路是加多一台前置的nginx(nginx-2)来做负载均衡,在平时不对外提供服务。当nginx-1不可用的时,nginx-2 瞬间把nginx-1的任务接管过来,保证对外的服务不间断

那在这里我们遇到了两个问题
Q1 : nginx-1 和 nginx-2都有各自的ip地址,那我们对外服务的ip地址应该是哪一个?两台nginx之间进行切换的时候,对外的IP怎么做到固定不变?
Q2 : nginx-2 要怎么知道nginx-1是否可用?他们之间怎么去建立一套沟通机制?
Keepalived可以帮助我们解决这两个问题
什么是Keepalived
Keepalived起初是为负载均衡设计的,用于管理集群中的各个节点。
后来加入了VRRP(虚拟路由冗余协议)可以用来实现多种服务的高可用。
我们先把每个nginx节点都安装上Keepalived,再来看看它是怎么工作的。
Keepalived安装配置
1 下载源码包
cd /usr/local/src
wget https://www.keepalived.org/software/keepalived-2.0.20.tar.gz
2 解压
tar -zxvf keepalived-2.0.20
3 配置
cd keepalived-2.0.20
手动指定安装目录,不然默认会安装到/u

本文介绍了如何通过Keepalived在Linux环境下实现Nginx的双机热备,确保高可用性。详细阐述了Keepalived的安装配置步骤,包括配置文件、健康检查脚本,并解析了请求如何到达Nginx服务器,以及在故障发生时Keepalived如何进行故障转移,维持服务不间断。
最低0.47元/天 解锁文章
251

被折叠的 条评论
为什么被折叠?



