1. 程式人生 > >伺服器架構配置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:eno16777736(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自動切換,需要設定指令碼:

#增加keepalived配置檔案
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