Nginx高可用HA

1. Nginx常規部署

如下圖所示,用戶在訪問網站的時候是直接訪問到Nginx,Nginx下掛了一個Tomcat集羣,在集羣環境下,Tomcat之間彼此協調,已達到負載均衡,如果有一臺Tomcat宕機了,其他Tomcat還可以提供服務。
在這裏插入圖片描述
但是因爲Nginx只有一臺,如果Nginx所在的節點宕機了,那麼就會導致整個服務癱瘓。所以我們需要一臺備用機及時的替換他進行服務。

2. Nginx高可用部署

如下圖所示,新增一臺備用的Nginx,原來的節點稱之爲master,新增的節點稱之爲backup,當原來的節點宕機以後,通過一種方法將請求發給備用的Nginx,繼續服務。那麼這個方法是什麼呢?就是Keppalived。
在這裏插入圖片描述

3. Keepalived

  • Keepalived的作用是解決Nginx單點故障問題,實現Nginx的高可用;
  • Keepalived是基於VRRP協議,即虛擬路由冗餘協議。這個協議是解決內網單機故障的路由協議,可以構建多個路由器master和backup,每個節點啓動的時候都會綁定一個虛擬的IP;
  • 如果Nginx集羣裏面有一個master和多個backup,那麼backup之間有一個weight,即權重的分配;
  • 如下圖所示,有了Keepalived之後,用戶會先請求虛擬IP,虛擬IP和master綁定到一起的,所以同樣可以訪問到主Nginx;
  • 在這裏插入圖片描述
  • 備用機會對主Nginx進行心跳檢測,如果主Nginx宕機了,發現主Nginx掛了,請求會被轉發給備用Nginx;在這裏插入圖片描述
  • Keepalived實現Nginx的高可用,本質是:通過實現VRRP協議來實現,主節點不停的向備用節點發送心跳,備用節點接收到心跳之後,就知道主節點還活着,一旦接受不到了,就知道主節點掛了,就會接管服務,當主機修復好了之後,備用機就恢復成小弟了。

4. Keepalived安裝和配置實現雙機主備

  1. 來到https://www.keepalived.org/download.html下載,然後解壓;

  2. 安裝依賴yum -y install libnl libnl-devel

  3. 進入到keepalived文件夾中,執行如下命令

    ./configure \
    --prefix=/usr/local/keepalived \
    --sysconf=/etc
    
  4. 執行命令make && make install

  5. 進入到/etc/keepalived文件夾中,編輯keepalived.conf文件,刪除沒用的默認配置項,剩餘的配置如下:
    在這裏插入圖片描述

  6. 執行命令/usr/local/keepalived/sbin/keepalived啓動keepalived,啓動成功後可輸入ip addr命令查看到配置的虛擬主機
    在這裏插入圖片描述

  7. 備用節點的配置如下:
    在這裏插入圖片描述

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