Nginx负责均衡服务器的双机高可用

Limitless 2010-06-21

目前公司架构:

负载均衡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下面那个`。

相关推荐