zoukankan      html  css  js  c++  java
  • keepalived+nginx配置文件及检查nginx服务的脚本

    脚本一启动的速度要快一些哦,因为脚本二要判断两次以后才启动哎

    这两个一般配合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

    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
  • 相关阅读:
    209. Minimum Size Subarray Sum
    208. Implement Trie (Prefix Tree)
    207. Course Schedule
    206. Reverse Linked List
    205. Isomorphic Strings
    204. Count Primes
    203. Remove Linked List Elements
    201. Bitwise AND of Numbers Range
    199. Binary Tree Right Side View
    ArcGIS API for JavaScript 4.2学习笔记[8] 2D与3D视图同步
  • 原文地址:https://www.cnblogs.com/fansik/p/6248684.html
Copyright © 2011-2022 走看看