文章目录
- 4.1 高可用集群架构Keepalived双机主备原理
- 4.2 安装Keepalived
- 4.3 Keepalived核心配置文件
- 4.4 Keepalived实现双主机主备高可用测试
- 4.5 高可用集群架构Keepalived双主热备原理
Nginx教程一
Nginx教程二
Nginx教程三
4.1 高可用集群架构Keepalived双机主备原理
我们知道任何服务器都存在着宕机的风险,前面说到在集群中一台服务器宕机后,并不会影响集群的工作,其它服务器依然可以继续处理用户的请求,但不难发现,Nginx本质上也是一个服务器,它也存在着宕机风险,而且当Nginx代理服务器宕机后可能整个系统都会崩溃。所以通常会准备一个备用的Nginx代理服务器,当主服务器宕机后用户仍然可以通过备用的Nginx服务器去分发用户的请求到相应的服务器,这就是Nginx的高可用(HA)。
Keepalived概念:keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。Keepalived是自动完成,不需人工干涉。Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器;keepalived是基于VRRP(虚拟路由冗余协议)协议的。
Keepalived双机主备原理:在原来的处理流程中用户的请求是直接发送到Nginx服务器的,在加入Keepalived服务以后,用户的请求不会直接发送到Nginx服务器,而是先申请一个虚拟IP,由于虚拟IP是和Nginx服务器版定到一起,所以可以通过该虚拟IP直接访问到Nginx服务器的资源,当主Nginx服务器宕机后,用户的虚拟Ip就会和备用的Nginx服务器绑定到一起。
4.2 安装Keepalived
在安装之前首先在之前的一个Nginx服务器的基础上再创建一个Nginx服务器作为备用机(直接将centos7服务器克隆即可),并用FinalShell连接(备用机的IP地址为172.16.23.149)
keepalived官网
官网上面随便下载一个版本,然后通过FInalSheel上传到Centos的/home/software文件夹下(没有该文件夹创建即可),主备机都要上传都要配置,上传之后解压缩
配置Keepalived,进入刚刚解压好的目录,进行配置
./configure --prefix=/usr/local/keepalived --sysconf=/etc/
然后使用make命令进行编译
make && make install
编译完成后,就安装完毕了
4.3 Keepalived核心配置文件
打开前面的核心配置文件,
keepalive.conf.sample
,将我们后面用不到的一些配置可以删除,配置为下面样子即可
然后启动Keepalived服务,启动之前先看一下该虚拟机的一些ip信息
启动后,可以看到ens160网卡下多了一项ip地址,也就是我们的VIP
备用机的配置
注意如果etc/keepalived下的配置文件为keepalived.conf.samples要改为keepalived.conf,下面以虚拟IP访问一下Nginx服务器,发现成功访问到了Tomcat服务器,Keepalived安装完毕),关闭keepalived只需要杀死相关进程即可
4.4 Keepalived实现双主机主备高可用测试
上面配置了主机和备机的Keepalived,现在模拟主机的宕机(直接将主机的keepalived进程杀死)
重新根据VIP访问,发现仍然可以访问,说明备用机开始工作了,重新启动主机后,主机又会重新工作
4.5 高可用集群架构Keepalived双主热备原理
我们知道备用机的作用是做为主机的一个替身,当主机发生故障以后,备用机才会派上用场,所以如果主机永远都不会发生故障,则备用机资源就被浪费了。这就是双机主备存在的问题,所以出现了双主热备架构,其原理是在两个nginx没有主备用关系,每个Nginx服务器都绑定一个虚拟IP,在处理自己的虚拟Ip的同时,又可以处理另一个机器的虚拟IP,这样两个服务器对于不同的VIP下,是不同的主备关系。
下面来实现双主热备,首先修改主机的配置
然后配置从机
到此双主热备配置完毕,连个VIP都可以访问