【轉載】keepalived+httpd 做web服務的高可用

場景:

  環境中有兩臺httpd服務器,一臺做主,一臺做備用;平時只用主向外提供http服務;當主宕機後,keepalived把vip綁定到備機上去,這樣就由備機提供http服務了。

  **keepalvied 這個軟件還是更新的比較快的,主要問題再於它的文檔並沒能跟上來,不同版本之間的差別比較大,我這裏用的是1.2.13版

 

【0】環境說明

主機ip            系統版本                keepavlied版本
192.168.80.131  centos6.6        keepalived-1.2.13
192.168.80.132  centos6.6        keepalived-1.2.13

 

 

【1】安裝keepalived 所需要的依賴

yum -y install gcc ipvsadm openssl-devel popt-devel kernel-devel

**由於keepalived 通常來說是和lvs配合用的,雖然這裏還用不着lvs,但是我還是把ipvsadm安裝上了

 

【2】編譯安裝keepalived

tar -xzvf keepalived-1.2.13.tar.gz 
cd keepalived-1.2.13
./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.32-504.el6.x86_64
make
make install

 

【3】修改192.168.80.131主機上的/usr/local/keepalived/etc/keepalived.conf

複製代碼
! Configuration File for keepalived

global_defs {
   router_id LVS_001B #router_id 這要個唯一
}


vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51 #這個virtual_router_id 在兩臺機器上要相同
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.80.80/24
    }
}

virtual_server 192.168.80.80 80 {
    delay_loop 2
    lb_algo rr
    lb_kind DR
    persistence_timeout 60
    protocol TCP
    real_server 192.168.80.131 80 {
        weight 1
        notify_down /tmp/stop_keepalive.sh #當檢測到real_server 宕機的時候就會執行這個腳本
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 2
            delay_before_retry 1
        }
    }
}
複製代碼

 

【4】修改192.168.80.132主機上的/usr/local/keepalived/etc/keepalived.conf

複製代碼
! Configuration File for keepalived

global_defs {
   router_id LVS_001B
}


vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.80.80/24
    }
}

virtual_server 192.168.80.80 80 {
    delay_loop 2
    lb_algo rr
    lb_kind DR
    persistence_timeout 60
    protocol TCP
    real_server 192.168.80.132 80 {
        weight 1
        notify_down /tmp/stop_keepalive.sh
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 2
            delay_before_retry 1
        }
    }
}
複製代碼

 

【5】腳本/tmp/stop_keepalived.sh的內容如下:

#!/bin/bash
pkill keepalived

 

【6】啓動keepalived程序

nohup /usr/local/keepalived/sbin/keepalived -D -f /usr/local/keepalived/etc/keepalived/keepalived.conf &

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章