
正文
keepalived+nginx配置文件及检查nginx服务的脚本
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
脚本一启动的速度要快一些哦,因为脚本二要判断两次以后才启动哎
这两个一般配合keepalived使用
脚本一:
#!/bin/bash
#author:fansik
#description:check nginx service run=`ps -C nginx --no-header | wc -l`
if [ $run -eq ]
then
/etc/rc.d/init.d/nginx start
sleep
fi
脚本二:
#!/bin/bash
#author:fansik
#description:check nginx service count=
for (( k=; k<; k++ ))
do
check_code=$( curl --connect-timeout -sL -w "%{http_code}\\n" http://localhost/index.html -o /dev/null )
if [ "$check_code" != "" ]; then
count=$(expr $count + )
sleep
continue
else
count=
break
fi
done
if [ "$count" != "" ]; then
/etc/init.d/nginx start
exit
else
exit
fi
keepalived的配置文件/etc/init.d/keepalived.conf:主配置文件如下,从配置文件将MASTER改成BACKUP,双主模型的时候在添加一个vrrp_instance VI_1主里面变成BACKUP,从里面变成MASTER,virtual_router_id变一下
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from fanjb@localhost
smtp_server 127.0.0.1
smtp_connect_timeout
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx1.sh"
interval
weight -
fall
rise
} vrrp_script chk_notify {
script "/etc/keepalived/chk_nginx.sh"
interval
weight -
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
10.10.10.250
}
track_script {
chk_nginx
chk_notify
}
notify_master "/etc/keepalived/notify.sh master"
notify_backup "/etc/keepalived/notify.sh backup"
notify_fault "/etc/keepalived/notify.sh fault"
}
通知脚本:/etc/keepalived/nodify.sh
#!/bin/bash
#author:fansik
#description:check nging status vip=10.10.10.250
contact='root@localhost' notify() {
mailsubject="`hostname` to be $1:$vip floating"
mailbody="`date '+%F %H:%M:%S'`: vrrp transition, `hostname` change to be $1"
echo $mailbody | mail -s "$mailsubject" $contact
} case "$1" in
master)
notify master
exit
;;
backup)
notify backup
exit
;;
fault)
notify fault
exit
;;
*)
echo "Usage:`basename $0` {master|backup|fault}"
exit
;;
esac





