Keeplived 설정 Nginx 더 블 컴퓨터 사용 가능

1. 프로필 은 Keepalived 든 Heartbeat 든 높 은 사용 이 가능 합 니 다. 모두 서버 스 크 립 트 에서 말 하 는 높 은 사용 이 가능 합 니 다. 서비스의 각도 가 아 닙 니 다.서버 다운 이나 네트워크 가 고장 나 면 고가 용 으로 자동 전환 이 가능 하 다 는 것 이다.만약 에 실행 중인 서비스, 예 를 들 어 Nginx 가 이러한 고가 용 소프트웨어 를 끊 는 것 은 의식 하지 못 하기 때문에 스스로 스 크 립 트 를 써 서 서비스의 전환 을 실현 해 야 한다.
2. 설치 설정 Keepalived
# ./configure
# make# make install
# cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
# cp /usr/local/sbin/keepalived /usr/bin/
# chkconfig --add keepalived 
# mkdir /etc/keepalived/# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id LVS_DEVEL}
   vrrp_script
    chk_nginx {
     script "/opt/monnginx.sh"
     interval 2
     weight 2
}
       vrrp_instance VI_1 {
    state MASTER 
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass mdnginx    }
    virtual_ipaddress {
        1.1.1.100
    }
    track_script {
        chk_nginx  }
    }
  }
  BACKUP      (BACKUP:1.1.1.2)
# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id LVS_DEVEL}
   vrrp_script
   chk_nginx {
   script "/opt/monnginx.sh"
   interval 2
    weight 2
  }
    vrrp_instance VI_1 {
    state BACKUP    
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass mdnginx    }
    virtual_ipaddress {
        1.1.1.100
    }
    track_script {
        chk_nginx  
        }
    }

 、         (         )
# service nginx start
# service keepalived start

    Nginx   
# vim /opt/monnginx.sh
#!/bin/bash# author: hujianli
# date: 2013-03-15
if [ $(ps -C nginx --no-header | wc -l) -eq 0 ]; then
    service nginx start
 fi
    sleep 3
        if [ $(ps -C nginx --no-header | wc -l) -eq 0 ]; then
    service keepalived stop
  fi

    ,      。
# vim /opt/monnginx.sh
#!/bin/bash# author: hujianli
# date: 2013-03-15
IPADDR=$(ip addr show eth0|awk '{print $2}' | sed -n 3p)
contact=([email protected])
num=${#contact[@]}
function email() {
for ((i=0;i<num;i++));do
        echo "$IPADDR service problem" | mail -s "WARNING" ${contact[i]} -- -f [email protected]
 done
}
        if [ $(ps -C nginx --no-header | wc -l) -eq 0 ]; then
        service nginx start
        fi
        email
        sleep 3
if [ $(ps -C nginx --no-header | wc -l) -eq 0 ]; then
        service keepalived stop
email
fi

좋은 웹페이지 즐겨찾기