!为什么这里要 指定监控的脚本呢?script "/tmp/dd.sh" !! 监控的脚本非常的关键!!!
keepalived本身的不足,只有服务器当keepalived down了的时候,BACKUP才会去接管,但是当nginx死了之后,keepalived是不知道nginx死了,所以写一个脚本让keepalived去检测nginx的存活状态然后去停掉自己的主keepalived!这样BACKUP才会去接管!
cat /tmp/dd.sh
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ]
then
/usr/local/nginx/sbin/nginx
sleep 1
if [ `ps -C nginx --no-header |wc -l` -eq 0 ]
then
killall keepalived
fi
fi
五,监控一下Nginx Mastaer 的日志
监控一下Nginx Backup 正常,就不贴出来了。
六。测试
现在停掉Nginx Mastaer上的nginx...Nginx Backup脚本检测到nginx死了,就接管了Nginx Mastaer。我们来看一看日志~ tail -f /var/log/messages
很显然可以看出backup已经变成master!!
现在再启动原来master的nginx,再查看backup的日志
很显然可以看出backup 自动叫交出了老大的权利,重现变为backup了!