1. 程式人生 > >nginx+keepalive實現高可用負載均衡

nginx+keepalive實現高可用負載均衡

keepalived+nginx高可實驗

一:實驗環境

主nginx負載均衡器:192.168.10.63 (通過keepalived配置了VIP:192.168.10.188供外使用)
副nginx負載均衡器:192.168.10.200(通過keepalived配置了VIP:192.168.10.188供外使用)
拓撲圖:
技術分享圖片
二:安裝nginx和keepalived(用yum安裝,在此處不編譯安裝了,用阿裏雲的yum倉庫)
yum install nginx -y
yum install keepalived -y
三:配置nginx服務器:
master:192.168.10.63
cd /usr/share/nginx/html/
vi index.html
如圖:

技術分享圖片
技術分享圖片
slave:192.168.10.200
cd /usr/share/nginx/html/
vi index.html
如圖:
技術分享圖片
技術分享圖片
在瀏覽器裏訪問master和slave,檢驗配置是否正確:
技術分享圖片
技術分享圖片
四:配置keepalived服務器:
master的配置
cd /etc/keepalived/
cp keepalived.conf{,.bak} #備份配置文件,養成良好習慣,修改配置文件前一定要備份。
技術分享圖片
技術分享圖片
slave的配置:不多說,直接上圖:
技術分享圖片
技術分享圖片
重啟master,slave的keepalived,nginx。
master的vip 如圖:
技術分享圖片
關閉master的keepalivd,vip會漂移到slave上去,master上的截圖:
技術分享圖片
查看slave,次時vip已經漂移到salve上去了,salve上的截圖:
技術分享圖片
說明keepalived的配置沒有問題。
五:檢驗keepalived和nginx的高可用:
技術分享圖片
關閉master的nginx,自動切換到slave的nginx,如圖:
master關閉nginx:
技術分享圖片
再次刷新網頁,跳轉到了slave的界面:
技術分享圖片
次時master的vip票已到slave上去了。master截圖:
技術分享圖片
salve的截圖:
技術分享圖片
vip為什麽會漂移:
是因為調用了/carl/data/program/nginx/sbin/check_nginx_alive.sh,這個腳本判斷nginx掛掉後(關閉),就killall keepalived,master上的keepalived就停止了,而keepalived上的是正常狀態,所以vip就漂移到了slave。這個腳本內容如下:

         #!/bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin
A=ps -C nginx --no-header |wc -l
if [ $A -eq 0 ]
then
echo ‘nginx server is died‘
killall keepalived
fi
截圖如下:
技術分享圖片

總結:此實驗室mater-slave實驗,有nginx心跳腳本,只要nginx停止,該服務器上的keepalived就會killall keepalived 。master上的nginx停止後,master上的keepalived也會停止,vip漂移到slave上,vip對外的服務正常訪問。但是:slave上的nginx停止後,是不會從salve上漂移到master上的。互為主從模式下,就要2個vip,次時DNS可以有2條A記錄指向這2個VIP,又可以實現高可以,無論是掛哪個機器,都可以對外提供服務。
此次試驗借鑒了其他博客的腳本,非常感謝他們!!

nginx+keepalive實現高可用負載均衡