keepalived +nginx 配置

来源:互联网 发布:剑三病娇正太捏脸数据 编辑:程序博客网 时间:2024/05/29 17:31

#MASTER  config:  172.16.20.116

[root@localhost conf]# more /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
     songshuyou@opzoon.com
   }
   notification_email_from songshuyou@opzoon.com
   smtp_server mail.opzoon.com
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_script check_nginx {
   script "/etc/keepalived/nginx_pid.sh"
   interval 2
}
vrrp_instance VI_1 {
    state MASTER
    interface ens192
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    notify_master "/etc/keepalived/master.sh"
    notify_backup "/etc/keepalived/backup.sh"
    notify_fault "/etc/keepalived/fault.sh"
   
   track_script {
     check_nginx
   }
    
    virtual_ipaddress {
        172.16.20.118/22 dev ens192
   }
}

#BACKUP CONFIG: 172.16.20.117

[root@localhost keepalived]# more keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
     songshuyou@opzoon.com
   }
   notification_email_from face-test@opzoon.com
   smtp_server mail.opzoon.com
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_script check_nginx {
   script "/etc/keepalived/nginx_pid.sh"
   interval 2
}
vrrp_instance VI_1 {
    state BACKUP
    interface ens192
    virtual_router_id 51
    priority 80
    advert_int 1
    nopreempt
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    notify_master "/etc/keepalived/master.sh"
    notify_backup "/etc/keepalived/backup.sh"
    notify_fault "/etc/keepalived/fault.sh"

    track_script {
     check_nginx
   }    
    virtual_ipaddress {
        172.16.20.118/22 dev ens192
   }

}


[root@localhost keepalived]# more master.sh
#!/bin/bash
LOGFILE=/var/log/keepalived-nginx-state.log
echo "[Master]" >> $LOGFILE
date >> $LOGFILE
[root@localhost keepalived]# more backup.sh
#!/bin/bash
LOGFILE=/var/log/keepalived-nginx-state.log
echo "[Backup]" >> $LOGFILE
date >> $LOGFILE
[root@localhost keepalived]# more fault.sh
#!/bin/bash
LOGFILE=/var/log/keepalived-nginx-state.log
echo "[Fault]" >> $LOGFILE

date >> $LOGFILE




[root@localhost keepalived]# more nginx_pid.sh
#!/bin/bash
#while :
#do
nginxpid=`lsof -i:80 |wc -l`
if [ $nginxpid -eq 0 ];then
   /usr/bin/systemctl restart nginx.service
#   sleep 5
   nginxpid=`lsof -i:80 |wc -l`
   echo $nginxpid
     if [ $nginxpid -eq 0 ];then
          /usr/bin/systemctl stop keepalived.service
     fi
fi
#sleep 5
#done

0 0