一、环境说明
VirtualBox6.1
CenOS7
Nginx
keepalived-1.1.20.tar.gz
二、IP配置
主Keepalived服务器IP地址:10.0.2.4
备Keepalived服务器IP地址:10.0.2.5
虚拟Keepalived服务器IP地址:10.0.2.6
三、下载地址
http://www.keepalived.org/software/ 可以选择自己需要的版本。
四、安装步骤
1、下载好安装包,可使用xshell软件连接虚拟机,将压缩包上传至/home目录。或者直接在虚拟机里执行命令下载:wget http://www.keepalived.org/software/keepalived-1.1.20.tar.gz(如果提示没有wget命令,安装即可:yum install wget)。
2、解压keepalived(两个虚拟机都需要做,步骤一致):
[root@localhost]# cd /home
[root@localhost home]# tar -zxvf keepalived-1.1.20.tar.gz
[root@localhost home]# cd keepalived-1.1.20
[root@localhost keepalived-1.1.20]# ln -s /usr/src/kernels/2.6.9-78.EL-i686/usr/src//linux
[root@localhost keepalived-1.1.20]# ./configure
执行完./configure后会显示:
3、编译安装:
[root@localhost keepalived-1.1.20]# make && make install
4、修改配置文件路径:
[root@localhost keepalived-1.1.20]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
[root@localhost keepalived-1.1.20]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
[root@localhost keepalived-1.1.20]# mkdir /etc/keepalived
[root@localhost keepalived-1.1.20]# cp /usr/local/etc/keepalived/keepalived.conf/etc/keepalived/
[root@localhost keepalived-1.1.20]# cp /usr/local/sbin/keepalived /usr/sbin/
5、设置服务开机启动:
[root@localhost keepalived-1.1.20]# vi /etc/rc.local
在最后一行加上: /etc/init.d/keepalived start
五、配置流程
1、配置 主:
[root@localhost keepalived-1.1.20]# vi /etc/keepalived/keepalived.conf
2、配置 备:
[root@localhost keepalived-1.1.20]# vi /etc/keepalived/keepalived.conf
3、启动服务:
六、验证测试
1、创建监控双机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
2、安装psmisc,因为脚本用到了killall命令,最小化安装的centos没有,所以要安装一下:yum -y install psmisc。
3、再次编辑keepalived配置文件:
vi /etc/keepalived/keepalived.conf
插入第一段:
vrrp_script check_nginx
{
script "/root/check_nginx.sh"
interval 2
weight 2
}
再插入第二段:
track_script
{
check_nginx
}
它们的位置如下:
4、备用机与此步骤一样。
5、启动keepalived服务,并开机自启。
systemctl start keepalived.service
systemctl enable keepalived.service
6、测试:
修改一下主机nginx的欢迎界面,以和备用机区分:添加单词Master和Backup:
7、在浏览器输入虚拟机ip:81,停掉主机服务器的nginx,systemctl stop nginx.service。刷新页面会发现没有变化,这是因为keepalived检测到nginx挂了,会通过check_nginx.sh脚本自动启动nginx。
8、当手动停止主机的keepalived:systemctl stop keepalived.service
会发现页面标题的Master没有了,就变成了Backup。
此时才算是配置成功了。