目的:html
當用戶請求訪問時,會經過nginx來訪問web服務應用,所以咱們必需要保證nginx的高可用,要保證nginx的高可用,咱們須要經過keepalived來監控nginx,並對外提供1個虛擬的vip當作ip供用戶訪問,當用戶訪問時先訪問虛擬的ip即keepalive-master,此時keepalive-master會經過腳本程序監控本身本機下的nginx是否啓動,若是啓動直接訪問,若是掛機,keepalive-master會將自身線程殺掉,而後綁定到keepalived-backup備機上,而後備機會接管keepalive-master的工做,繼續訪問本機上的nginx,以完成用戶的本次請求。linux
一.準備工做nginx
1.準備2臺linux虛擬機,分別安裝 jdk,tomcat,nginx,ipvs,keepalived,(詳見安裝)web
2.設置shell
1.虛擬ip爲: 192.168.25.125vim
2.Master主機ip爲:192.168.25.128 ,nginx 端口:80 tomcat 端口爲: 8080tomcat
3backupr主機ip爲:192.168.25.129 ,nginx 端口:80 tomcat 端口爲: 8080服務器
二.在nginx.conf的配置文件中配置tomcat的負載均衡 負載均衡
進入命令: vim /usr/local/nginx/conf/nginx.conftcp
1.在128 和129 兩個節點了配置以下內容:
upstream cc.com { server 192.168.25.128:8080; server 192.168.25.129:8080; } location / { proxy_pass http://cc.com; }
2.配置 tomcat的配置文件端口
進入命令: vim /usr/local/install/tomcat/conf/server.xml
3.啓動 tomcat
進入命令: cd /usr/local/install/tomcat/bin/
啓動命令: sh startup.sh
關閉命令:sh shutdown.sh
進入命令: cd /usr/local/install/tomcat/logs/ && ll
查看日誌: tail -f catalina.out
4.啓動nginx
啓動命令: /usr/local/nginx/sbin/nginx
三.Keepalived設置shell腳本
1.建立腳本文件:
進入命令: cd /usr/local/install/keepalived/etc/keepalived && ll
建立文件: vim nginxCheck.sh
NGINX=/usr/local/nginx/sbin/nginx PROT=80 nmap localhost -p $PORT | grep "$PORT/tcp open" #echo $? if [ $? -ne 0 ];then $NGINX -s stop $NGINX sleep 3 nmap localhost -p $PORT | grep "$PORT/tcp open" [ $? -ne 0] && cd /usr/local/install/keepalived/sbin && pkill keepalived echo "over"
fi
注意: 要對這個腳本文件設置權限 chmod 777 nginxCheck.sh
2.在keepalived.conf中添加對腳本的調用
進入命令: cd /usr/local/install/keepalived/etc/keepalived && ll
編輯命令: vim keepalived.conf
1.在vrrp服務器配置前增長:
vrrp_script chk_http_port {
script "/usr/local/install/keepalived/etc/keepalived/nginxCheck.sh"
interval 2
weight 2
}
2.在vrrp_instance 配置的最後部分添加:
track_script {
chk_http_prot
}
3.啓動keepalived
進入命令: cd /usr/local/install/keepalived/sbin && ll
啓動命令: ./keepalived -f /usr/local/install/keepalived/etc/keepalived/keepalived.conf
四.測試、訪問
1.測試
命令: ip add
2.訪問
在地址欄輸入: 192.168.25.125