Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived

高可用场景及解决方案 【Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived】单机nginx,负载均衡到应用服务器
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

如果只靠负载均衡完成nginx的高可用,这样就可以了吗?
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

不行,如果第一个nginx挂了,那么服务也就停止了,所以还得加,以此类推,陷入了死循环,所以通过负载循环实现高可用的方案是不行的
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

keepalived为当前提供服务的Nginx服务器生成一个虚拟ip地址,客户端是对虚拟ip发出请求的,keepalived会不断判断当前提供服务器的nginx服务器是否宕机,如果宕机则会通过选举机制来投票选出另一台nginx服务器提供服务,并将虚拟ip地址切换到将提供服务的nginx服务器上,从而实现nginx高可用。
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

安装配置keepalived 克隆一份虚拟机centos7-1backup,作为nginx备用服务器
centos7-1的ip地址是192.168.195.128(主机)
centos7-1backup的ip地址是192.168.195.133(从机)
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

编译安装keepalived(不推荐)
下载地址:https://www.keepalived.org/download.html#
使用./configure 编译安装
如遇报错提示,安装依赖yum install openssl-devel

configure: error: !!! OpenSSL is not properly installed on your system. !!! !!! Can not include OpenSSL headers files. !!!

yum安装keepalived(推荐)
yum install keepalived
在centos7-1和centos7-1backup上都安装keepalived
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

使用yum安装后配置文件在/etc/keepalived/keepalived.conf
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

修改contos7-1的keepalived配置文件,这台机器当作主机
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

启动主机的keepalived
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

查看主机网卡ip addr,发现多了一个ip地址,这个ip地址就是虚拟ip
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

修改contos7-1backup的keepalived配置文件,这台机器设为从机
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

主机和从机的配置文件比较
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

启动从机的keepalived
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

查看从机网卡ip addr,发现没有虚拟ip,这是因为当前虚拟ip在主机上,当主机宕机后,虚拟ip被keepalived转移到从机上
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

测试一下,在本地控制台去ping这个虚拟ip,发现可以ping通
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

这时将主机关机init 0
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

发现会请求超时一下,然后继续可以ping通Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

查看从机的网卡ip addr,发现虚拟ip转移到了从机上
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

测试nginx代理tomcat服务器的可用性,当前虚拟ip在主机上
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

访问虚拟ip,可以正常访问
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

主机关机
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

还是可以正常访问
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

虚拟ip转移到了从机上
Nginx学习笔记|Nginx学习笔记12——Nginx高可用和keepalived
文章图片

    推荐阅读