Haproxy负载均衡平滑上线,下线后端网站服务器方案
2014-02-16 12:00
671 查看
![](http://s3.51cto.com/wyfs02/M00/12/3F/wKiom1MAOArwoSMgAAELEhmttes287.jpg)
#智能判断,网站web02服务器是否在线上,如果在haproxy线上,就无需要在挂到haproxy上。
![](http://s3.51cto.com/wyfs02/M02/12/3F/wKioL1MAN-aRK8rPAAD7rrfpqW8774.jpg)
![](http://s3.51cto.com/wyfs02/M01/12/3F/wKiom1MAOAvy3iLKAAEO9V46dvA592.jpg)
![](http://s3.51cto.com/wyfs02/M00/12/3F/wKioL1MAN-ajEuEeAAEYIrhsWOA419.jpg)
#现在3台web网站服务器还在线上.
![](http://s3.51cto.com/wyfs02/M02/12/3F/wKiom1MAOAzzH_E6AAJcvHaJARM313.jpg)
![](http://s3.51cto.com/wyfs02/M01/12/3F/wKioL1MAN-jSevO8AAEJsekyMfY273.jpg)
#现在下线web02网站服务器.
![](http://s3.51cto.com/wyfs02/M01/12/3F/wKioL1MAN-jBqcmPAAINauaDZuc843.jpg)
#在haproxy监控页面,看到web02网站服务器已经不在线上,不对用户提供请求了。
![](http://s3.51cto.com/wyfs02/M01/12/3F/wKiom1MAOR-DVFfKAAHMe1jj8pk449.jpg)
#现在把web02网站服务器挂到haproxy负载均衡上.
![](http://s3.51cto.com/wyfs02/M02/12/3F/wKioL1MAN-mDuyzvAAENPH3tc-4926.jpg)
![](http://s3.51cto.com/wyfs02/M01/12/3F/wKiom1MAOA_h7s3QAAIdHoEP58I151.jpg)
#web02上线完成,到haproxy监控页面看下,是否在haproxy负载均衡上面。
![](http://s3.51cto.com/wyfs02/M00/12/3F/wKioL1MAN-qwfQv7AAJRIku1Krw977.jpg)
#!/bin/bash # Source function library. . /etc/rc.d/init.d/functions haproxydir=`find / -name haproxy |grep haproxy/sbin/haproxy|awk -F sbin '{print $1}'` while true do clear # menu echo " 本机Haproxy负载均衡路径为: $haproxydir" echo " ****************** Haproxy tool ******************* * *" echo "* (1) 平滑启动Haproxy *" echo "* (2) 关闭Haproxy *" echo "* (4) 查看Haproxy运行进程数 *" echo "* (5) 查看TCP连接状态 *" echo "* (10) Haproxy平滑下线方案 *" echo "* (11) Haproxy平滑上线线方案 *" echo "* (0) 退出本程序 *" echo "* * *************************************************" read -p "请输入对应数字: " caozuo case $caozuo in # reload 1) if [ -z "`ps ax|grep haproxy|grep -v grep|awk '{print $1}'`" ]; then /etc/init.d/haproxy reload > /dev/null sleep 1 if [ -z "`ps ax|grep haproxy|grep -v grep|awk '{print $1}'`" ]; then read -p "Haproxy 启动失败!" else read -p "Haproxy 启动完成!回车继续!" fi else read -p "Haproxy is Running! 回车继续!" fi ;; #stop 2) killall haproxy sleep 1 if [ -z "`ps ax|grep haproxy|grep -v grep|awk '{print $1}'`" ]; then read -p "Haproxy关闭完成!回车继续!" else read -p "Haproxy关闭失败!回车继续!" fi ;; #process 4) read -p "Haproxy运行进程数: `netstat -lntp|grep haproxy|wc -l`" ;; #TCP 5) read -p "TCP连接状态: `netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"t",state[key]}'`" ;; #xiaxian 10) while true do clear echo " 本机Haproxy-主站平滑下线方案" echo " **************Haproxy 下线主机列表**************** * *" echo "* (1) 平滑下线web01:192.168.1.10主机 *" echo "* (2) 平滑下线web02:192.168.1.11主机 *" echo "* (3) 平滑下线web03:192.168.1.12主机 *" echo "* (0) 退出本程序 *" echo "* * *************************************************" read -p "请输入对应数字: " xiaxian case $xiaxian in 1) web01=`sed -n '/#server web01/p' /usr/local/haproxy/etc/haproxy.cfg|wc -l` if [[ $web01 -gt 0 ]];then echo "web01网站服务器已经下线.................." sleep 2 else echo "开始平滑下线web01网站服务器...................................." sleep 1 sed -i '86s/^/#/g' /usr/local/haproxy/etc/haproxy.cfg /etc/init.d/haproxy reload > /dev/null read -p "下线完成,回车返回!" sleep 2 fi ;; 2) web02=`sed -n '/#server web02/p' /usr/local/haproxy/etc/haproxy.cfg|wc -l` if [[ $web02 -gt 0 ]];then echo "web02网站服务器已经下线.................." sleep 2 else echo "开始平滑下线web02网站服务器...................................." sleep 1 sed -i '87s/^/#/g' /usr/local/haproxy/etc/haproxy.cfg /etc/init.d/haproxy reload > /dev/null read -p "下线完成,回车返回!" sleep 2 fi ;; 3) web03=`sed -n '/#server web03/p' /usr/local/haproxy/etc/haproxy.cfg|wc -l` if [[ "$web03" -gt "0" ]];then echo "web03网站服务器已经下线.................." sleep 2 else echo "开始平滑下线web03网站服务器...................................." sleep 1 sed -i '88s/^/#/g' /usr/local/haproxy/etc/haproxy.cfg /etc/init.d/haproxy reload > /dev/null read -p "下线完成,回车返回!" sleep 2 fi ;; 0) break ;; *) read -p "请输入对应数字!或者Ctrl+C退出!回车继续!" ;; esac done ;; #shangxian 11) while true do clear echo " 本机Haproxy-主站平滑上线方案" echo " **************Haproxy 上线主机列表**************** * *" echo "* (1) 平滑上线web01:192.168.1.10主机 *" echo "* (2) 平滑上线web02:192.168.1.11主机 *" echo "* (3) 平滑上线web03:192.168.1.12主机 *" echo "* (0) 退出本程序 *" echo "* * *************************************************" read -p "请输入对应数字: " shangxian case $shangxian in 1) web01=`sed -n -e '/^server web01/p' /usr/local/haproxy/etc/haproxy.cfg|wc -l` if [[ "$web01" -gt "0" ]];then echo "web01网站服务器已经在线上,无需再重新上线.................." sleep 2 else echo "开始平滑上线web01网站服务器...................................." sleep 1 sed -i '86s/^#//g' /usr/local/haproxy/etc/haproxy.cfg /etc/init.d/haproxy reload > /dev/null read -p "上线完成,回车返回!" sleep 2 fi ;; 2) web02=`sed -n -e '/^server web02/p' /usr/local/haproxy/etc/haproxy.cfg|wc -l` if [[ "$web02" -gt "0" ]];then echo "web02网站服务器已经在线上,无需再重新上线.................." sleep 2 else echo "开始平滑上线web02网站服务器...................................." sleep 1 sed -i '87s/^#//g' /usr/local/haproxy/etc/haproxy.cfg /etc/init.d/haproxy reload > /dev/null read -p "上线完成,回车返回!" sleep 2 fi ;; 3) web03=`sed -n -e '/^server web03/p' /usr/local/haproxy/etc/haproxy.cfg|wc -l` if [[ "$web03" -gt "0" ]];then echo "web03网站服务器已经在线上,无需再重新上线.................." sleep 2 else echo "开始平滑上线web03网站服务器...................................." sleep 1 sed -i '88s/^#//g' /usr/local/haproxy/etc/haproxy.cfg /etc/init.d/haproxy reload > /dev/null read -p "上线完成,回车返回!" sleep 2 fi ;; 0) echo "返回上层菜单!" sleep 1 clear break ;; *) read -p "请输入对应数字!或者Ctrl+C退出!回车继续!" ;; esac done ;; 0) action "haproxy管理脚本退出................................................" /bin/true sleep 1 clear break ;; *) read -p "请输入对应数字!或者Ctrl+C退出!回车继续!" ;; esac done
本文出自 “IMySQL” 博客,请务必保留此出处http://jiechao2012.blog.51cto.com/3251753/1359511
相关文章推荐
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构方案全解析-(页面静态化,图片服务器分离,负载均衡)
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析