keepalived+nginx配置文件及检查nginx服务的脚本
Posted wangmo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keepalived+nginx配置文件及检查nginx服务的脚本相关的知识,希望对你有一定的参考价值。
原地址:http://www.cnblogs.com/fansik/p/6248684.html
脚本一启动的速度要快一些哦,因为脚本二要判断两次以后才启动哎
这两个一般配合keepalived使用
脚本一:
#!/bin/bash #author:fansik #description:check nginx service run=`ps -C nginx --no-header | wc -l` if [ $run -eq 0 ] then /etc/rc.d/init.d/nginx start sleep 3 fi
脚本二:
#!/bin/bash #author:fansik #description:check nginx service count=0 for (( k=0; k<2; k++ )) do check_code=$( curl --connect-timeout 3 -sL -w "%{http_code}\\\\n" http://localhost/index.html -o /dev/null ) if [ "$check_code" != "200" ]; then count=$(expr $count + 1) sleep 3 continue else count=0 break fi done if [ "$count" != "0" ]; then /etc/init.d/nginx start exit 1 else exit 0 fi
#!/bin/bash count=0 run=`ps -C nginx --no-header | wc -l` for (( k=0; k<10; k++ )) ; do if [ $run -eq 0 ] ; then /etc/rc.d/init.d/nginx start sleep 2 count=$(($count+1)) echo "nginx start $count faild !" >> /etc/keepalived/keepalived.log fi if [ "$count" == "9" ]; then /etc/init.d/keepalived stop echo "keepalived change !" >> /etc/keepalived/keepalived.log break fi done
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 30 router_id LVS_DEVEL } vrrp_script chk_nginx { script "/etc/keepalived/nginx1.sh" interval 1 weight -2 fall 2 rise 1 } vrrp_script chk_notify { script "/etc/keepalived/chk_nginx.sh" interval 1 weight -2 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 99 advert_int 1 authentication { auth_type PASS auth_pass 1111 } 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 0 ;; backup) notify backup exit 0 ;; fault) notify fault exit 0 ;; *) echo "Usage:`basename $0` {master|backup|fault}" exit 1 ;; esac
以上是关于keepalived+nginx配置文件及检查nginx服务的脚本的主要内容,如果未能解决你的问题,请参考以下文章