Nginx負載均衡高可用

安全劍客發表於2019-08-24
nginx作為負載均衡器,所有請求都到了nginx,可見nginx處於非常重點的位置,如果nginx伺服器當機後端web服務將無法提供服務,影響嚴重。要實現nginx的高可用,需要實現備份機。
1.1. 什麼是負載均衡高可用

nginx作為負載均衡器,所有請求都到了nginx,可見nginx處於非常重點的位置,如果nginx伺服器當機後端web服務將無法提供服務,影響嚴重。
為了遮蔽負載均衡伺服器的當機,需要建立一個備份機。主伺服器和備份機上都執行高可用(High Availability)監控程式,通過傳送諸如“I am alive”這樣的資訊來監控對方的執行狀況。當備份機不能在一定的時間內收到這樣的資訊時,它就接管主伺服器的服務IP並繼續提供負載均衡服務;當備份管理器又從主管理器收到“I am alive”這樣的資訊時,它就釋放服務IP地址,這樣的主伺服器就開始再次提供負載均衡服務。
Nginx負載均衡高可用Nginx負載均衡高可用

1.2. keepalived+nginx實現主備
1.2.1. 什麼是keepalived

keepalived是叢集管理中保證叢集高可用的一個服務軟體,用來防止單點故障。
Keepalived的作用是檢測web伺服器的狀態,如果有一臺web伺服器當機,或工作出現故障,Keepalived將檢測到,並將有故障的web伺服器從系統中剔除,當web伺服器工作正常後Keepalived自動將web伺服器加入到伺服器群中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的web伺服器。

1.2.2. keepalived工作原理

keepalived是以VRRP協議為實現基礎的,VRRP全稱Virtual Router Redundancy Protocol,即虛擬路由冗餘協議。
虛擬路由冗餘協議,可以認為是實現路由器高可用的協議,即將N臺提供相同功能的路由器組成一個路由器組,這個組裡面有一個master和多個backup,master上面有一個對外提供服務的vip(VIP = Virtual IP Address,虛擬IP地址,該路由器所在區域網內其他機器的預設路由為該vip),master會發組播,當backup收不到VRRP包時就認為master宕掉了,這時就需要根據VRRP的優先順序來選舉一個backup當master。這樣的話就可以保證路由器的高可用了。
keepalived主要有三個模組,分別是core、check和VRRP。core模組為keepalived的核心,負責主程式的啟動、維護以及全域性配置檔案的載入和解析。check負責健康檢查,包括常見的各種檢查方式。VRRP模組是來實現VRRP協議的。

1.2.3. keepalived+nginx實現主備過程

初始狀態
Nginx負載均衡高可用Nginx負載均衡高可用
主機當機
Nginx負載均衡高可用Nginx負載均衡高可用
主機恢復
Nginx負載均衡高可用Nginx負載均衡高可用
高可用環境

兩臺nginx,一主一備:192.168.101.3和192.168.101.4
兩臺tomcat伺服器:192.168.101.5、192.168.101.6


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2654836/,如需轉載,請註明出處,否則將追究法律責任。

相關文章