1. 程式人生 > >nginx配置keepalived(伺服器的心跳檢測系統)

nginx配置keepalived(伺服器的心跳檢測系統)

         Keepalived的作用是檢測伺服器的狀態,如果有一臺web伺服器宕機,或工作出現故障,Keepalived將檢測到,並將有故障的伺服器從系統中剔除,同時使用其他伺服器代替該伺服器的工作,當伺服器工作正常後Keepalived自動將伺服器加入到伺服器群中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的伺服器。

配置

主伺服器ip:192.168.1.148

副伺服器ip:192.168.1.127

虛擬ip:192.168.200.25

一.下載keepalved安裝包,安裝

  你可以從官網下選擇自己下載的版本點選開啟連結,嫌麻煩的話可以直接執行以下命令:

cd /home 
mkdir keep  #為了不讓安裝的檔案太亂,我在home目錄下建了一個資料夾
cd keep
wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz  
tar -zxvf keepalived-1.2.2.tar.gz
cd keepalived-1.2.2
./configure --prefix=/home/keep/keepalived-1.2.2  #進入配置檔案進行配置,/home/keep是你檔案路徑
make && make install

補充: 在大家進行./configure  有的機器會報錯,這裡為大家提供一個簡單的解決方案。

1.遇到keepalived執行./configure --prefix=/usr/local/keepalived時報錯:configure: error: Popt libraries is required

 解決方法:  
yum install popt-devel  #安裝好popt的開發包。
重新./configure 即可。
二.安裝到系統,預設的啟動腳本里寫的是系統路徑,所以需要拷貝一些檔案到系統目錄下
 $ cp /home/keep/keepalived-1.2.2/etc/rc.d/init.d/keepalived /etc/init.d/
 $ cp /home/keep/keepalived-1.2.2/sbin/keepalived /usr/sbin/
 $ cp /home/keep/keepalived-1.2.2/etc/sysconfig/keepalived /etc/sysconfig/
 $ mkdir -p /etc/keepalived/
 $ cp /home/keep/keepalived-1.2.2/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf 

三.測試一下keepalived是否已經安裝好
cd /etc/init.d/       #進入目錄
sh keepalived start   #啟動
sh keepalived stop    #停止
sh keepalived restart #重啟
(以上步驟在主伺服器和副伺服器上都要進行操作)

四.修改伺服器配置檔案

  1.修改主伺服器

vim /etc/keepalived/keepalived.conf  #進入配置檔案
vrrp_instance VI_1 {
    state MASTER           #主伺服器預設為master
    interface eno16777736  #繫結虛擬IP的網路介面  
    virtual_router_id 51   #設定驗證資訊,和slave一樣
    priority 100           #主機高於slave
    advert_int 1           #檢測伺服器狀態間隔時間
    authentication {
        auth_type PASS
        auth_pass 1111    #設定密碼最好複雜點,以免衝突
    }
    virtual_ipaddress {
        192.168.1.223 #虛擬IP地址,可以為多個
    }
}
sh keepalived restart #重啟
   2.修改副伺服器
vim /etc/keepalived/keepalived.conf  #進入配置檔案
vrrp_instance VI_1 {
    state  SLAVE           #副伺服器為slave
    interface eno16777736  #繫結虛擬IP的網路介面  
    virtual_router_id 51   #設定驗證資訊,和master一樣
    priority 80           #副機低於master
    advert_int 1           #檢測伺服器狀態間隔時間
    authentication {
        auth_type PASS
        auth_pass 1111    #設定密碼最好複雜點,以免衝突
    }
    virtual_ipaddress {
        192.168.1.223 #虛擬IP地址,可以為多個
    }
}
sh keepalived restart #重啟
五.測試       1.主機
   ip addr #測試主機上的keepalived是否已繫結虛擬ip
      如果成功,則顯示如下情況:
   
                                                                                (圖1)
     用ip測試訪問時候,會顯示兩個ip,一個本服務ip,另一個是虛擬ip
   
    2.副伺服器
   ip addr #測試副機上狀態是否成功,當主機存在時,副機則不顯示虛擬ip
      如果成功,則顯示如下情況:
    
                                                                              (圖2)
     3.進入你的mysql根目錄下,我的是 /var/www/html,建一個index.php(預設訪問檔案,兩臺伺服器都執行),並設定不同內容
     4.訪問你定義的虛擬ip地址192.168.1.223,這時候會顯示你主機index.php所顯示內容
     5.關閉主伺服器的keepalived,即演示當主伺服器down掉時,keepalived是否會起到監聽作用,立刻切換到副伺服器
   ps aux|grep keepalived  #檢視keepalived程序
   killall keepalived      #關閉所有程序
   ps aux|grep keepalived  #再看一下是否已關閉
      這時候用 ip addr 訪問,就顯示圖2內容,只顯示本機ip;
     6.訪問副機ip ,ip addr ,這時候顯示圖1內容,即顯示本機ip,又顯示虛擬ip, 說明keepalived已起到作用,現已切換到副伺服器.
     7..再次訪問你定義的虛擬ip地址192.168.1.223,這時候會顯示你副機index.php所顯示內容
這樣,你的keepalived就已經安裝成功了,為自己慶祝一下吧奮鬥奮鬥
(若副伺服器顯示不成功,一般是配置問題,或者主伺服器keepalived程序沒殺死的原因,大家再研究一下吧)