1. 程式人生 > >**-配置keepalived 雙機熱備-**

**-配置keepalived 雙機熱備-**

-配置keepalived 雙機熱備-

下載wget http://keepalived.org/software/keepalived-2.0.6.tar.gz
mkdir /usr/local/keepalived/
tar -zxvf keepalived-2.0.6.tar.gz -C /usr/local/keepalived
cd /usr/local/keepalived/keepalived-2.0.6
./configure
make
make install
cp -r keepalived /etc/init.d/keepalived
mkdir /etc/keepalived/
cd /usr/local/keepalived/keepalived-2.0.6/keepalived/etc/keepalived
cp keepalived.conf /etc/keepalived/
cd /usr/local/keepalived/keepalived-2.0.6/keepalived/etc/sysconfig/
cp keepalived /etc/sysconfig/keepalived
cp /usr/local/keepalived/keepalived-2.0.6/bin/keepalived /usr/sbin

vi /etc/keepalived/keepalived.conf #以下是配置的內容
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.67.100
}
}
以上修改瞭如下三項
1.
priority 101 #Master值要大於Bakcup
2.更改網路介面
vrrp_instance VI_1 中interface:ens33(ip addr命令中的網路)
3.
192.168.67.100 是虛擬ip

啟動keepalived
service keepalived start或者systemctl start keepalived

備用排程伺服器 只有一項不同
priority 100
同樣配置完畢後啟動keepalived

注意:
#vrrp_strict #這個註釋掉,否則可能造成物理機的瀏覽器無法訪問應用
啟動keepalived
service keepalived start
設定開機自啟動
systemctl enable keepalived.service

如果nginx死掉,虛擬ip不會自動切換,如果要nginx停止執行後虛擬ip自動切換,需要設定指令碼:

vi  /etc/keepalived/keepalived.conf

如下:

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
			vrrp_script chk_nginx{
				script "/root/nginx_chk.sh"
			}

vrrp_instance VI_1 {
    state MASTER
    interface eno16777736
    virtual_router_id 51
    priority 101
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.43.66
    }
		    track_script{
			chk_nginx
		    }
}


建立 vi /root/nginx_chk.sh,輸入指令碼

#!/bin/bash
if [ "$(ps aux | grep  "nginx: master process"|grep -v grep)" == "" ]
then
        #/etc/init.d/keepalived/keepalived  stop
        service keepalived  stop
fi

指令碼要賦予x許可權