一.开始前先环境准备
虚拟机网络设置成桥接网卡、主机ip改为:192.168.150、辅机改为:192.168.151、
VIP改为:192.168.96.155
二.关闭sellinux
1.setenforce 0
2.编辑文件,关闭开机启动
vi /etc/selinux/config
将selinux=enforcing
改成selinux=disabled
三. 为主机安装keepalived
下载:
wget https://www.keepalived.org/software/keepalived-1.4.5.tar.gz
解压:
tar -zxvf keepalived-1.4.5.tar.gz
进入文件夹:
cd keepalived-1.4.5
预编译:
./configure --prefix=/usr/local/keepalived
安装:
make && make install
4.keepalived注册为系统服务
cp keepalived/etc/init.d/keepalived /etc/init.d
cp keepalived/etc/sysconfig/keepalived /etc/sysconfig/
5.编辑配置文件
mkdir -p /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
vi /etc/keepalived/keepalived.conf
6.备用机安装keepalived
备用机安装还是按照上边的第2、3、4步重复来一遍,
第5步编辑配置文件有些不同
内容中:
state BACKUP '代表备用机
priorigy 90 '优先级比主机低
7.创建监控双机nginx状态的脚本
vi /opt/check_nginx.sh
添加如下代码:
#!/bin/sh
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then #如果nginx没在运行
systemctl start nginx.service #启动nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then #如果无法启动
killall keepalived #杀死keepalived进程
fi
fi
八.安装psmisc
脚本用到了killall命令,最小化安装的centos没有,因此须安装:
yum -y install psmisc
9.再次编辑keepalived配置文件
vi /etc/keepalived/keepalived.conf
写入下边代码:
vrrp_script check_nginx {
script "/root/check_nginx.sh"
interval 2
weight 2
}
track_script {
check_nginx
}
十.备用机的监控
第七、八、九重新在来一遍
11.启动keepalived服务,并开机自启
systemctl start keepalived.service
systemctl enable keepalived.service
12.测试
首先修改主机nginx的欢迎界面,和备用机区分。地址根据自己nginx的安装位置修改
vi /usr/local/nginx/html/index.html
最后在浏览器输入“VIP:端口”,端口是nginx的监听端口,在本例为192.168.96.250:8080 会出现如下欢迎界面:
停止主机的nginx
systemctl stop nginx.service
刷新页面会发现没有什么变化,因为keepalived检测到nginx挂了,会通过check_nginx.sh脚本自动启动nginx
当手动停止主机的keepalived
systemctl stop keepalived.service
**会发现页面标题的Master没有了,证明成功切换到了备用机,
当再次启动主机的keepalived
**systemctl start keepalived.service**
页面又恢复成了Master,**
Nginx+keepalived 完成
注:这篇博客是站在了巨人的肩膀上完成的,收获到了不一样的东西。