Keepalived的作用是檢測web服務器的狀態(tài)格侯,如果有一臺web服務器鼻听、
Mysql服務器宕機财著,或工作出現(xiàn)故障,Keepalived將檢測到后撑碴,會將有故
障的web服務器或者Mysql服務器從系統(tǒng)中剔除撑教,當服務器工作正常后
Keepalived自動將web、Mysql服務器加入到服務器群中醉拓。這些工作全部
自動完成伟姐,不需要人工干涉,需要人工做的只是修復故障的WEB和Mysql
服務器亿卤。
生產環(huán)境使用Keepalived正常運行愤兵,共啟動3個進程,一個是父進程排吴,負責
監(jiān)控其子進程秆乳,一個是VRRP子進程,另外一個是Checkers子進程钻哩。兩個子
進程都被系統(tǒng)Watchlog看管屹堰,兩個子進程各自負責自己的事,
Healthcheck子進程檢查各自服務器的健康狀況街氢,如果Healthcheck進程檢
查到Master上服務不可用了扯键,就會通知本機上的VRRP子進程,讓他刪除通
告阳仔,并且去掉虛擬IP忧陪,轉換為BACKUP狀態(tài)扣泊。
虛擬IP:192.168.80.200
nginx服務器:192.168.80.128-129
# nginx服務器上安裝keepalived工具:
yum install keepalived -y
# master端配置:
vim /etc/keepalived/keepalived.conf
router_id LVS_DEVEL:keepalived機器的標識近范,一般設為主機名
virtual_router_id 51:虛擬路由器id號,主從必須一致
priority 100:優(yōu)先級(值越大延蟹,優(yōu)先級越大)
advert_int 1:檢測間隔時間(心跳頻率)
# backup端配置:
# 啟動keepalived:
systemctl start keepalived
# 測試:
啟動之后就可以看到vip的生成并且成功128服務器的nginx服務
關閉128服務器的nginx和keepalived:
nginx -s stop && systemctl stop keepalived
129成功獲得vip地址和成功訪問到129服務器的nginx服務
測試成功?? 》》》》》》》
我們確實實現(xiàn)的vip能繼續(xù)提供服務评矩,但是nginx宕機時,我們需要手動關閉keepalived服務阱飘,期間用戶訪問會受到影響斥杜。下面我們就一起來是實現(xiàn)自動切換。只需要在原先的配置文件添加幾行文檔沥匈,很簡單的蔗喂。
# 配置keepalived的master端
vim /etc/keepalived/keepalived.conf
scripts:指定一個腳本,判斷nginx是否宕機高帖。
weight:宕機后優(yōu)先級減20(100=>80).
track_script:用來追蹤腳本
下面是檢測nginx是否宕機的腳本:
killall -0 nginx 判斷nginx是否處于啟動狀態(tài)(啟動返回0缰儿,沒啟動返回1)
# 測試——成功
只模擬nginx宕機