檢查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