分类信息网站如何优化,python网页编辑器,南通市城乡建设局网站,山西省网站备案双击热备是应用与服务器的一种解决方案#xff0c;其构造思想是主机和从机通过TCP/IP网络连接#xff0c;正常情况下主机处于工作状态#xff0c;从机处于监视状态#xff0c;一旦从机发现主机异常#xff0c;从机将会在很短的时间内代替主机。完全实现主机的功能。 要想实…双击热备是应用与服务器的一种解决方案其构造思想是主机和从机通过TCP/IP网络连接正常情况下主机处于工作状态从机处于监视状态一旦从机发现主机异常从机将会在很短的时间内代替主机。完全实现主机的功能。 要想实现双击热备方案就需要用到keepalived软件。
1.Keepalived介绍
Keepalived 是一种高性能的服务器高可用或热备解决方案 Keepalived 可以用来防止服务器单点故障的发生通过配合 Nginx 可以实现 web 前端服务的高可用。 Keepalived是Linux下一个轻量级别的高可用解决方案。使用的是VRP协议VRP协议将两台或多台设备组成一个虚拟路由组在这个虚拟路由组中会存在一个MASTER书点以及多个BACKUP节点在MASTER节点上会绑定一个虚拟VIP虚拟VIP)作为客户机只需要使用这个VIP来访问后端的服务器即可。虚拟IP的使用和真是P其实没有区别。当MASTER节点宕机以后此时会从多个BACKUP节点中选择一个节点作为MASTER节点而只有MASTER节点才可以绑定对应的VP此时VIP就会重新绑定到新的MASTER节点上这样就实现了ip的飘逸。而整个过程对客户机是透明的客户机是感知不到ip飘逸的整个过程。 2.实操演示
2.1环境说明
本次我们使用两个虚拟机来演示一下借助于keepalived来实现双机热备。具体的环境说明如下所示: 2.2nginx安装
分别安装nginx 查看正在运行的进程并过滤出包含nginx关键字的进程的命令 : ps -ef | grep nginx 查看防火墙状态 systemctl status firewalld.service 如果状态为running
关闭防火墙 systemctl stop firewalld.service 浏览器输入主从节点的IP查看nginx页面
主节点 从节点 2.3keppalived安装 主节点配置文件内容 #定义虚拟网卡需要和当前服务器192.168.35.xxx绑定的网卡相对应 #定义组vriid主从节点id配置相同 #adver_int : 1 每一秒发送一次心跳检查包 #主从节点之间的认证是通过密码认证主从节点配置必须相同 #设置虚拟ip用户去访问的ip主从节点需要一致 备份节点配置文件内容 配置完毕后启动Keepalived服务
先启动主节点在启动从节点
启动完成之后查看ens33网卡ip地址是否新增了前面所配置的虚拟ip地址110 此时在主节点上查看查看ens33网卡ip地址时可查看新增的110ip从节点不显示110ip。
主节点: 从节点 2.4 进行测试
1、使用虚拟ip访问nginx服务:http://192.168.136.1102、关闭主节点上的keepalived软件查看ip是否可以自动飘逸 2.当把主节点150的keepalived服务停止时 停止后查看主节点150ens33网卡ip地址时IP已发生飘逸变成150的IP 查看从节点151时IP已经变成110 3.当把主节点150的keepalived服务启动时
启动后查看主节点150ens33网卡ip地址时IP已发生飘逸变成110的IP 查看从节点151时IP已经不显示虚拟IP 3.编写检测脚本
在刚才我们是通过手动关闭keepalived软件然后让ip飘逸到从节点上了大家试想一下如果这个主机上的keepalived软件没有出现问题而是nginx出现了问题此时ip开会自动飘逸吗?肯定是不会的那么此时用户使用虚拟ip访问的还是有问题的nginx此时就无法完成请求访问。 虚拟IP110访问失败因为目前110绑定的是主节点150当访问虚拟IP110时实际上访问的是主节点150的nginx此时主节点150的nginx挂了nginx访问失败。 解决该问题的思路就是编写一个检测nginx服务的脚本然后让keepalived每隔一段时间执行一次一旦检测到了nginx出现问题了以后就将keepalived进程关闭掉keepalived进程关闭后IP会进行漂移到另一台服务器。 检测脚本(check_nginx.sh):
反引号判断nginx的结果当结果A0时标识nginx没启动此时就将keepalived进程关闭掉。 设置可执行权限 可将此脚本放在keepalived配置文件的相同目录
脚本执行命令sh /路径/check_nginx.sh
测试
当执行脚本之后主节点150 ens33网卡ip地址没有虚拟IP 110 此时访问110 时实际访问的是另一台服务器151的nginx 现在就能解决该问题但是以上脚本时手动执行的不现实下面将修改配置自动执行检测脚本。 在原来主节点的keepalived配置文件加上如下配置 注意:如果发现检测脚本不执行此时就需要关闭linux中安全检测模块。 测试
1.启动主节点150的nginx在启动主节点150的keepalived此时查看主节点的 ens33网卡ip地址发现虚拟IP110已经漂移回来了。 此时访问虚拟IP 110时实际访问的是主节点 150的nginx 2.主动关闭主节点上的nginx 再次访问虚拟IP 110此时实际访问的从节点151的nginx 至此完整的双击热备解决方案得以解决