nginx+keepalived双机热备
簡介
keepalived是一個類似于layer3, 4 & 5交換機制的軟件,即可以使IP層、傳輸層、和應用層的服務冗余集群化。常應用于iP的虛擬化,能夠實現mysql、nginx等服務的雙機熱備。
Keepalived高可用服務對之間的故障切換轉移,是通過 VRRP (Virtual Router Redundancy Protocol ,虛擬路由器冗余協議)來實現的。
在 Keepalived服務正常工作時,主 Master節點會不斷地向備節點發送(多播的方式)心跳消息,用以告訴備Backup節點自己還活看,當主 Master節點發生故障時,就無法發送心跳消息,備節點也就因此無法繼續檢測到來自主 Master節點的心跳了,于是調用自身的接管程序,接管主Master節點的 IP資源及服務。而當主 Master節點恢復時,備Backup節點又會釋放主節點故障時自身接管的IP資源及服務,恢復到原來的備用角色。
實驗軟件版本:
nginx:1.14.2
keepalived:2.0.12
兩個軟件的安裝都是使用的源碼包編譯安裝。
系統結構
192.168.50.80 nginx+keepalived
192.168.50.81 negin+keepalived
192.168.50.100 VIP
配置文件
80上的配置文件
1 vim /opt/keepalived-2.0.12/etc/keepalived/keepalived.conf 2 3 global_defs { 4 router_id gh01 5 } 6 7 vrrp_instance VI_1 { 8 state MASTER 9 interface ens32 10 virtual_router_id 100 11 priority 100 12 advert_int 1 13 authentication { 14 auth_type PASS 15 auth_pass 1111 16 } 17 virtual_ipaddress { 18 192.168.50.100/24 19 } 20 }81上的配置文件
1 vim /opt/keepalived-2.0.12/etc/keepalived/keepalived.conf 2 3 global_defs { 4 router_id gh02 5 } 6 7 vrrp_instance VI_1 { 8 state BACKUP 9 interface ens32 10 virtual_router_id 100 11 priority 80 12 advert_int 1 13 authentication { 14 auth_type PASS 15 auth_pass 1111 16 } 17 virtual_ipaddress { 18 192.168.50.100/24 19 } 20 }常用命令
啟動keepalived
1 cd /opt/keepalived-2.0.12/sbin 2 ./keepalived -f /opt/keepalived-2.0.12/etc/keepalived/keepalived.conf關閉keepalived
1 pkill keepalivedkeepalived日志位置:/var/log/message
驗證
同時啟動80和81的nginx和keepalived,訪問VIP192.168.50.100,訪問到的是主服務器80上的nginx,此時VIP是虛擬注冊在80的網卡上。
將80上的keepalived關閉,VIP就被注冊到了81上,再次訪問VIP,就訪問到了80的nginx。
上述過程,VIP始終是可以訪問的,只是后臺切換了不同的nginx服務器。
總結
主服務器的keepalived關閉,虛擬IP就自動轉移到備用服務器,由此我們可以寫一個定時任務,不斷檢測應用(nginx、mysql等)是否正常,一旦檢測到應用異常,關閉相對主機上的keepalived,下次用戶的訪問就會自動轉移到備用服務器上。
轉載于:https://www.cnblogs.com/guanghe/p/10396930.html
總結
以上是生活随笔為你收集整理的nginx+keepalived双机热备的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AT2705 Yes or No(组合数
- 下一篇: __attribute__ 总结