利用Keepalived 搭建Nginx雙機主備模式
阿新 • • 發佈:2018-12-24
先上示意圖
Nginx做為反向代理伺服器,負責後端的WEB應用服務的代理,即終端使用者的Http請求,將由Nginx的負載均衡策略,轉發到不同的Web伺服器(Tomcat)上處理。
當然,在一些網際網路應用中,Nginx也可以作為http伺服器,專門負責靜態資源的處理(html,css,js等),這樣的部署架構雖然效能有所提升,但相對我們實際專案的部署能力、運維能力來說,增加了不少複雜度,容易發生一些莫名其妙的更新失敗的錯誤,所以不建議在併發不高的專案中將靜態資源單獨部署到Nginx中。上述架構中,Nginx共部署了2臺伺服器,分為Mater(主)和Slave(備),兩臺伺服器的Nginx配置一致,但因為是單活模式,所以同一時間,只有一臺Nginx參與工作。主備模式是為了保證Nginx的高可用(HA)。
所有的Keepalived服務(主&備)均設定了同一個虛擬IP,終端使用者即通過此虛擬IP訪問WEB系統。這樣一旦伺服器端發生了故障切換,但對於終端使用者而言,他們是感覺不到的,因為系統訪問的IP地址(虛擬IP)並沒有變(會有極為短暫的404錯誤或其他錯誤,約3秒鐘,示系統訪問量而定,重新整理即可)。
Keepalived虛擬IP的工作原理為VRRP協議(請參考 虛擬路由冗餘協議),想了解工作原理的同學可自行百度Keepalived工作原理或VRRP協議內容。簡而言之,Keepalived的虛擬IP類似於ARP欺騙,如果你經歷或者瞭解過ARP攻擊,相信不難理解。
具體步驟後續有時間再整理吧