fengda 发表于 2013-3-18 08:53:51

nginx+keepalived构建高可用web服务器

随着nginx的发展越是成熟,nginx的高并发、高稳定性及支持反向代理等特性使得其倍受青睐。下面笔者就来对nginx+keepalived的高可用架构进行简单搭建。笔者水平有限,仅供参考,如有不足望指正。见笑了。^_^ ^_^一、实验环境 系统环境:centos 6.0 x86_64nginx版本 nginx-1.2.7keepalived版本 keepalived-1.26.tar.gznginx_1192.168.1.105(master)nginx_2192.168.1.106(backup)vip       192.168.1.200二、nginx安装配置分别在105、106俩台实验机器上执行下面脚本,安装配置nginx:
#!/bin/bash##This is a auto install nginx shell scripts.##li2013-03-16##defie pathDIR1=/usr/local/src/DIR2=/usr/local/nginx/DIR3=http://nginx.org/download/nginx-1.2.7.tar.gzDIR4=/usr/local/src/nginx-1.2.7.tar.gzDIR5=nginx-1.2.7yum install pcre pcre-devel -yif[ $UID -ne 0 ];then The shell scripts user must is root or adminstrator,please change user.sleep 3exit fiif [ ! -d $DIR2 ];thenmkdir -p /usr/local/nginx/else echo"The directory was exit."fidownload (){cd $DIR1 ;wget $DIR3 if [ ! -f $DIR4 ];then ehco'The nginx source packagesdownload was defeated,please check.'else echo'The nginx source packages was downloaded.'fi}install (){tar zxvf $DIR4 ;cd$DIR5 &&./configure --prefix=$DIR2 &&make &&make installif [ $? -ne 0 ];thenecho'The nginx insall was defeated,please check.'else echo 'The nginx was insatlled.'fi}start (){/usr/local/nginx/sbin/nginx &&ps -ef |grep nginx |grep -v grep }stop (){pkill nginx }download &&install &&start &&stop执行该脚本过程中如无报错,说明我们的nginx安装成功。

三、安装配置keepalived
在105跟106上执行该脚本,内容如下:
#!/bin/bash##auto install keepalived shell scripts.##li 2013-03-16##define PATHDIR1=/usr/local/src/DIR2=/usr/local/DIR3=keepalived-1.2.6.tar.gzDIR4=keepalived-1.2.6DIR5=/usr/src/kernels/2.6.32-220.e16.x86_64/ if[ $UID -ne 0 ];thenecho 'The shell scripts user must be root or administrator,please change user.'sleep 3exit 0fidownload (){cd $DIR1 ;wget http://www.keepalived.org/software/keepalived-1.2.6.tar.gz if [ $? -ne 0 ];then echo'Download keepalived source package was failed,please check network or download state.'else echo 'Download keepalived source packagesuccessfully.'fi}install (){tar zxvf $DIR3 &&cd $DIR4 &&./configure --with-kernel-dir=$DIR5 &&make &&make install if [ $? -ne 0 ];thenecho 'Install keepalived was failed,please check.'else echo 'Install keepalived successfully.'fi}configure_keepalived(){cp $DIR2/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ &&cp $DIR2/etc/sysconfig/keepalived /etc/sysconfig/ &&cp $DIR2/sbin/keepalived /sbin/&&mkdir -p /ect/keepalived.conf if[ $? -ne 0 ];then echo 'Keepalived configure was failed,please check.'else echo 'Keepalived configure successfully.'fi}
PS3="Please insert select Menu:"select i in "download" "install" "configure_keepalived"do$idone   (添加这五行,在执行脚本过后会随后根据选择的选项去执行下一步动作,方便只下载等说什么的单一动作,执行完成后按 alt+c 退出)

执行过程中无报错,则说明keepalived安装成功。下一步,新建keepalived配置文件keepalived.conf 内容如下:

! Configuration File for keepalived
global_defs {
notification_email {
      lifenlun163@163.com
}
    notification_email_from lifenlun163@163.com
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id LVS_DEVEL
}
vrrp_script chk_nginx {
    script "/data/sh/check_nginx.sh"
    interval 2
    weight 2
}
# VIP1
vrrp_instance VI_1 {
   state MASTER
   interface eth0
   lvs_sync_daemon_inteface eth0
   virtual_router_id 151
   priority 100
   advert_int 5
   nopreempt
   authentication {
         auth_typePASS
         auth_pass1111
   }
   virtual_ipaddress {
         192.168.1.200
   }
   track_script {
   chk_nginx
    }
}
在106上的配置文件/etc/keepalived/keepalived上修改参数:state为BACKUP模式、优先级priority 为90(低于MASTER的优先级即可),根据上面的配置,我们建立一个check_nginx.sh脚本,用来查看nginx是否存活来切换nginx服务器。check_nginx.sh脚本内容如下:
#!/bin/bash
##auto check nginx process
##li 2013-03-16
killall -0 nginx
if
[ $? -ne 0 ];then
/etc/init.d/keepalived stop
fi
五、启动测试nginx+keepalived高可用
在105跟106上都执行以下步骤:
1.启动nginx执行:    /usr/local/nginx/sbin/nginx
2.启动keepalived执行:/etc/rc.d/init.d/keepalived start
3.执行脚本: /data/sh/check_nginx.sh
在浏览器访问:192.168.1.200




因我们的105上设置的是MASTER模式,所以我们去查看105下的日志文件:

从上面可用观察出105为MASTER模式,现在我们宕掉105的nginx,观察在浏览器里面还能不能访问192.168.1.200,如果能访问且页面跟上面访问页面一样,则说明我们的nginx+keepalived搭建成功,当然我们也需要去观察105的日志文件:

以上说明:我们搭建的nginx+keepalived高可用web服务器完成。
如果你看到这,是对我最大的褒奖,希望你能给宝贵的建议。谢谢。



视频的容积 发表于 2013-3-18 12:40:50

如果回帖是一种美德,那我早就成为圣人了!

xglys 发表于 2013-5-17 09:32:08

沙发!沙发!

偷瓜的贼 发表于 2013-5-19 17:11:20

打破老婆终身制,实行小姨股份制。引入小姐竞争制,推广情人合同制。

sdxh0506 发表于 2013-5-22 08:10:20

我不在江湖,但江湖中有我的传说。

zhouu 发表于 2013-5-26 15:29:16

所有的男人生来平等,结婚的除外。

ddlddx0000 发表于 2013-5-30 22:13:13

走,MM,咱们化蝶去……
页: [1]
查看完整版本: nginx+keepalived构建高可用web服务器