Nginx负责均衡服务器的双机高可用
目前公司架构:
负载均衡A :Nginx+resin 。PS:此Nginx负载均衡了A B C
负载均衡B :resin
负载均衡C :resin
前段时间出现一个情况:当负载均衡A,出现宕机,导致上面的Nginx服务停掉,尽而导致 负载A B C 都不能正常服务。
因此,我们需要两台以上的Nginx负载均衡服务器,实现故障转移与高可用。
明天将按照张宴上第6.5章节,Nginx负责均衡服务器的双机高可用,来实现。
本地环境:
虚拟机下2个linux环境,IP如下:
192.168.152.129 负载A
192.168.152.131 负载B
6月21日:环境情况
负载A :nginx +resin
负载B :null
6月22日:
早上,搭好环境
负载A :nginx +resin 其中 nginx配置了负责A和B
负载B :resin
下午:把书中所写双机高可用的实现方式看明白。
6月23日:
下面2个脚本运行在负载B上,用于随时接管IP133
脚本nginx-131.sh:用于接管IP133
#!/bin/sh
function_bind_133()
{
/sbin/ifconfigeth0:1192.168.152.133broadcast192.168.152.255netmask255.255.255.0up
/sbin/routeadd-host192.168.152.133deveth0:1
/sbin/arping-Ieth0-c3-s192.168.152.133192.168.152.1
}
function_start_nginx(){
/etc/init.d/nginxstart
}
whiletrue
do
echo"开始检测133"
httpcode_rip1=`/usr/bin/curl-o/dev/null-s-w%{http_code}http://192.168.152.133`
#httpcode_133=‘/usr/bin/curl-o/dev/null-s-w%{http_code}http://192.168.152.133‘
echo"检测结果:$httpcode_133"
if[x$httpcode_rip1=="x000"];
then
echo"开始接管:133"
function_bind_133
function_start_nginx
echo"接管结束"
fi
sleep5
done脚本close_133.sh用于取消对IP133的接管
#!/bin/sh
#取消对IP133的接管
/sbin/ifconfigeth0:1192.168.152.133broadcast192.168.152.255netmask255.255.255.0down
#关闭nginx
/etc/init.d/nginxstop
echo "取消接管成功!"PS:今天在编写nginx-131.sh脚本时,因为标点的问题,出现了很多莫名其妙的错误。以后涉及到`要十分小心。用Esc下面那个`。