1. 原理
基於VRRP熱備份協議,以軟件的方式實現Linux服務器的多機熱備份功能。是通過共有的虛擬IP地址(VIP)對外提供服務;每個熱備組內只能有一個服務器提供服務,其他服務器處於冗餘狀態,若當前服務器失效後,則其他處於冗餘狀態的服務器將接替他的工作(優先級高的),以繼續提供服務。
2. 準備工作
我們需要準備至少兩臺linux服務器,可以使用虛擬機,然後兩臺服務器都必須成功安裝keepalived.並且服務器的網段是一致的,例如:
192.168.0.15
192.168.0.16
3. 配置
我們安裝完keepalived之後(安裝可參考https://blog.csdn.net/weixin_42214548/article/details/106874906),通過編輯keepalived的核心配置文件來配置keepalived的虛擬ip.配置如下
值得注意的是,實例綁定的網卡一定是要和你的linux服務器一致,大家可以使用 下面的命令查看網卡
ip addr
我們配置好了主服務器之後,接下來是配置從服務器,也是幾乎相同的配置
主從服務器都配置完了之後,我們直接啓動keepalived
#進入到keepalived的啓動目錄下
/usr/local/keepalived/sbin
#啓動腳本
./keepalived
啓動完成之後我們查看下keepalived的進程,存在進程即表明我們啓動成功了
ps -ef | grep keepalived
我們繼續使用ip addr命令就可以查看到被綁定的網卡下存在了兩個ip地址,其中一個就是keepalived配置下的虛擬ip,一旦當keepalived主節點掛掉之後.虛擬ip則會綁定到從節點去.我們只需要使用使用兩臺nginx都去監聽虛擬ip即可,一旦主節點的keepalived掛掉之後.虛擬ip則會去請求從節點的nginx.
不過我們需要實現的是nginx的主從熱備,並不是keepalived的主從,目前主節點的nginx掛掉了其實還不會影響主節點的keepalived,所以我們現在要通過編寫腳本將主節點keepalived定時去監聽主節點nginx的心跳,一旦主節點的nginx掛掉之後,立馬停止掉主節點的keepalived,這樣虛擬ip即可綁定到從節點,而新的請求則會去請求從節點的nginx了
4. keepalived監聽nginx心跳,配置nginx重啓
編寫nginx重啓監測腳本
配置keepalived監聽nginx腳本
在vrrp_instance中新增監控腳本
.最後重啓keepalived使得keepalived配置重新生效
到此keepalived的主從雙擊熱備部署完成,不過這個模式下的雙擊熱備有一個比較明顯的缺點就是一定㤇兩臺服務器,並且從服務器在主服務器不掛掉的情況下是永遠不會工作的,這樣是大大增加了運營成本的.
鑑於上述的缺點,我們還有一種新的模式可以選擇,就是keepalived的雙主熱備模式,意思是沒有從服務器或者雙方互爲對方的從服務器,而請求則通過dns域名輪訓的方式進行分發請求,具體的操作流程如下:
1. 準備兩臺服務器
2. 每臺服務器安裝keepalived
3. 每臺服務器都配置一個主配置和一個從配置,也就是需要虛擬出兩個ip,一個是本機作爲主服務器的虛擬ip,一個是作爲另外一臺服務器的從服務器虛擬ip,配置好了之後,另外一臺服務器也是相同的配置
4. 配置結束後也就代表兩臺服務器會出現兩個虛擬ip,那用戶如何去訪問呢,我們只需要將兩個ip都解析到同一個域名下即可,然後對這個域名進行dns輪訓,這樣一個負載均衡就形成了.