Nginx 高可用---keepalived

  • nginx高可用
  1. 傳統的高可用思路

tomcat的高可用的思路,是在tomcat集羣前面加一層負載服務nginx。如下圖

 

這種做法,解決了tomcat的高可用問題。但是引入了前面的負載機器的高可用問題(Nginx如果掛了,玩完)

如果nginx沿用此思路,總會有一個最前端是單機的,存在宕機玩完的風險(雞生蛋蛋生雞無窮盡)

  1. lvs 思想解決高可用問題

 

如上圖,由服務器集羣虛擬出來一臺 虛擬網關vip(不真實存在,自然不存在宕機問題),

此vip由兩臺機器共同協商生成。當有一臺機器宕機時,另一臺機器一樣能維持vip。這保證了,只要兩臺機器不同時宕機,vip就存在

  1. keepalived配置LVS過程

前提

1.關閉selinux,打開/etc/sysconfig/selinux設置其中值  à SELINUX=disabled

 

2.安裝必須的依賴包

yum -y install libnl libnl-devel libnfnetlink-devel

keepalived安裝

下載源碼包--不能使用yum方式安裝(有bug) --wget https://www.keepalived.org/software/keepalived-1.3.4.tar.gz

配置(指定安裝目錄和配置目錄,否則文件太散亂) --./configure --prefix=/usr/local/keepalived --sysconf=/etc

make && make install

keepalived主機配置

打開/etc/keepalived/keepalived.conf,只需要配置如下一段。(其它是多餘配置,刪除)

 

啓動keepalived,查看機器ip地址,可發現多出一個244.200的ip

 

此時,使用原ip地址244.253能打開的頁面,使用244.200也能打開

 

keepalived從機配置

從機配置與主機過程完全一樣,配置文件內以下標識id與優先級稍作變化即可

 

 

啓動從機的keepalived後,可發現其ip地址無變化

keepalived校驗LVS效果

1、此時,殺掉主機上的keepalived,244.200的ip將從主機上消失。而出現的從機的ip中

2、再次啓動主機的keepalived,244.200的ip將被主機重新奪回

3、此效果是單主單備方式。備機資源有一定的浪費。可以重複前面的動作,虛擬出第二個ip,將主從機優先級顛倒,從而利用起備機服務

keepalived監控服務軟件

以上操作中,keepalived很好的實現了LVS功能,即集羣機器共同虛擬一個vip,並實現在集羣中自動漂移。

但假如物理機狀況良好,並不能保障其上運行的服務軟件ok,因此需要藉助keepalived來監控服務軟件。

a、使用keepalived來監控nginx

編輯一個sh監控腳本,sh腳本:

#!/bin/bash

A=`ps -C nginx --no-header |wc -l`       #統計nginx進程是否存在

if [ $A -eq 0 ];then                            #爲0,表明nginx停止了

      /usr/local/nginx/sbin/nginx                #嘗試重啓nginx

      if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then    #nginx重啓失敗,則keepalived自殺,進行VIP轉移

              killall keepalived    #殺掉,vip就漫遊到另一臺機器                

      fi

fi

b、在配置文件中加入以下兩處配置:

 

c、重啓keepalived,測試監控效果,如下圖操作:

 

nginx已變成不死鳥

 

 

備註  chk_nginx.sh 

#!/bin/bash

A=`ps -C nginx --no-header |wc -l`    ##統計nginx進程數,若爲0,表明nginx被殺
if [ $A -eq 0 ];then
        /usr/local/openresty/nginx/sbin/nginx                #重啓nginx
        #nginx重啓失敗,則停掉keepalived服務,進行VIP轉移
        if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
              killall keepalived    #殺掉,vip就漫遊到另一臺機器
        fi
fi
 

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