nginx+keepalived負載均衡可用框架(一 keepalived雙機系統)

如果這篇文章牛逼,是因站在各位大牛肩膀上的,如果這篇文章傻逼,是因鄙人能力有限無法吸收各位大牛精髓。


爲何要nginx+keepalived實現負載均衡呢?

有人說我直接nginx不就能實現負載均衡了嗎?試問如果你那臺nginx掛掉了呢?

下面看看一位大牛的架構

做負載均衡的nginx服務器兩臺(其中一臺做備用機,通過keepalived來管理)

中間那個藍色的不是a10或f5之類的,這只是形容nginx軟負載均衡。

nginx_1,nginx_2,nginx_3是3臺web服務器,當然你可以添加更多。

數據庫分爲主從庫(這裏不多說數據庫方面)


具體實施步驟

1.安裝和配置nginx和keepalived(文章過會補。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。)

2.編寫shell腳本,實現nginx服務器進程的高HA(什麼是HA,註釋1有解釋)

    #!/bin/bash 
    while  : 
    do 
     nginxpid='ps -C nginx --no-header | wc -l'
     if [ $nginxpid -eq 0 ];then 
      /usr/local/nginx/sbin/nginx 
      sleep 5 
      nginxpid='ps -C nginx --no-header | wc -l'
      echo $nginxpid 
        if [ $nginxpid -eq 0 ];then 
     /etc/init.d/keepalived stop 
       fi 
     fi 
     sleep 5 
    done 
這是無限循環的腳本(這裏並不是死循環),放在主nginx機器上(目前主要有它提供負載均衡服務),

ps -C nginx --no-header | wc -l 命令收集nginx的PID的值,如果該值爲0的話,表示nginx進程已經死掉,嘗試啓動nginx進程

/usr/local/nginx/sbin/nginx(啓動nginx進程,每個人啓動nginx進程的路徑可能不一樣,根據自己的路徑修改成相應的)

sleep 5 等5秒,查看nginx的PID的值,如果還是爲0,表示nginx啓動失敗,關閉本機的keepalived進程 /etc/init.d/keealived stop

這樣web網站就會由備用nginx來提供服務


註釋1.什麼是HA

HA是雙機集羣的簡稱

LATCH HA 是X0;linux Latch 系列的高可靠性的服務器集羣系統解決方案

今天各行業的順利運轉都依賴於計算機系統。商品的訂貨、配送、客戶服務、財務結算、保險及預約都需要高度可靠的信息服務系統。
這自然要求計算機的宕機時間越短越好。LATCH HA能夠自動檢測系統的故障。
同時,一旦發現計算機出現故障,LATCH HA將把該計算機上的所有進程轉移到備份計算機上,從而爲客戶提供不間斷的服務。

一旦計算機宕機,LATCH HA能夠將宕機時間縮短到幾分鐘甚至幾秒鐘。而且能夠將系統恢復到宕機以前的狀態,從而保證計算機的穩定運行。
在LATCH HA的保護下,計算機系統再也不用因爲硬件故障或日常性的維護而中斷運行。
LATCH HA就是利用這些方法來提供最佳的服務可靠性,將計算機的宕機時間減少到最低程度。
要知道,一分鐘的宕機時間也許會給銀行,鐵路,航空等行業的運營帶來不可估量的損失。
 
還具有系統崩潰的智能檢測與處理系統。她利用各種手段來檢測硬件、存儲設備、網絡及系統軟件的故障。
同時,一旦發現計算機出現故障, LATCH HA將把該計算機上的所有進程轉移到備份計算機上,從而爲客戶提供不間斷的服務。

高可用性的實現的另一大關鍵就是的冗餘策略,簡言之就是對主機,網絡設備,備份設備的多臺備份(當然不只是簡單的備份機):
LATCH HA擁有多種冗餘模式,其中包括雙機在線待機模式、雙機就緒模式及三機模式。
所有的模式都提供了對各種備份資源-如文件系統、數據庫、網絡IP地址、系統進程、SCSI設備及NFS-的支持。 

此外,高可用性的實現還要有豐富的應用程序支持: 
LATCH HA能夠應用在各種集中式、客戶機-服務器模式或OLTP系統中。
同時其與市場上各種主流的數據庫系統與OLTP軟件-如Oracle、 SYBASE、 Informix與Tuxedo-也都保持兼容。
LATCH HA同時提供了各種應用程序接口。因此,客戶能夠在其私有軟件中集成各種功能來保證系統的高可靠性,這樣也保護了客戶的投資。

瞭解即可


另外這裏有幾個地方,備用nginx爲何不加一個如上的shell,等待5秒中會不會太少,這個要等各位同學考慮。


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