目前公司架构:
负载均衡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/ifconfig eth0:1 192.168.152.133 broadcast 192.168.152.255 netmask 255.255.255.0 up
/sbin/route add -host 192.168.152.133 dev eth0:1
/sbin/arping -I eth0 -c 3 -s 192.168.152.133 192.168.152.1
}
function_start_nginx(){
/etc/init.d/nginx start
}
while true
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
sleep 5
done
脚本close_133.sh用于 取消对IP133的接管
#!/bin/sh
#取消对IP133的接管
/sbin/ifconfig eth0:1 192.168.152.133 broadcast 192.168.152.255 netmask 255.255.255.0 down
#关闭nginx
/etc/init.d/nginx stop
echo "取消接管成功!"
PS:今天在编写nginx-131.sh脚本时,因为标点的问题,出现了很多莫名其妙的错误。以后涉及到`要十分小心。用Esc下面那个`。