检查nginx后端real server脚本,实现发现宕机剔除,恢复服务自动加入功能


#!/bin/bash
#Author: Liang WeiCheng

ip_array=($(grep "server 10.112.84" /etc/nginx/nginx.conf |awk '{print $2}'))
while true
do
        ##对当前负载均衡的所有节点挨个检查
    for((i=0;i<${#ip_array[*]};i++))
    do
         egrep "^#.*${ip_array[$i]}.*" /etc/nginx/nginx.conf &>/dev/null         

         [ $? -eq 0 ] && continue

         status=`curl -s -w "%{http_code}" -o /dev/null ${ip_array[$i]}`

         if [ ${status} -ne 200 ]
             then
              sed -i "s/server ${ip_array[$i]}/#server ${ip_array[$i]}/g" /etc/nginx/nginx.conf
              /usr/sbin/nginx  -s reload

         fi
    done
        
        sleep 5
        for((i=0;i<${#ip_array[*]};i++))
        do
                     a=`curl -s -w "%{http_code}" -o /dev/null ${ip_array[$i]}`

                 if [ ${a} -eq 200 ];then
                  egrep "^#.*${ip_array[$i]}.*" /etc/nginx/nginx.conf &>/dev/nullif [ $? -eq 0 ];then
                   sed -i -r "s/#(.*${ip_array[$i]}.*)/\1/g" /etc/nginx/nginx.conf
                   /usr/sbin/nginx -s reload

                  fi
                  fi
        done
done

 

对应的nginx文件的配置:

 

http://www.itnose.net/detail/6411167.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM