Nginx+keepalived双机热备(主从模式)

首先确认系统已经安装好Nginx并能正常访问。 nginx搭建请查看http://blog.csdn.net/u011019141/article/details/78716078

需要高可用的nginx对应的设备均需要安装keepalived服务,安装步骤一样。
本文安装目录为: /opt/keepalived

Keepalived安装

进入keepalived待安装目录
cd /opt
下载keepalived
wget -c http://www.keepalived.org/software/keepalived-1.3.9.tar.gz
解压安装包
tar -zxvf keepalived-1.3.9.tar.gz
安装openssl软件包
yum install -y openssl openssl-devel
进入安装包
cd keepalived-1.3.9/
编译安装包
./configure --prefix=/opt/keepalived

Keepalived做成系统服务

为了方便启停keepalived服务,做成系统服务自启动
创建文件夹
mkdir /etc/keepalived
复制启动文件
cp /opt/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /opt/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
创建两个软链接
ln -s /opt/keepalived/sbin/keepalived /sbin/
ln -s /opt/keepalived/sbin/keepalived /usr/sbin/
设置开机服务
chkconfig keepalived on
启停keepalived服务
就可以使用以下命令启停服务了: service keepalived [start | stop | reload | restart ]
service keepalived start
两台机器按照以上步骤安装完毕后,进入下面配置keepalived
查看启动状态
ps -ef | grep keepalived

配置keepalived

192.168.1.100为主节点, 192.168.1.101为从节点, 192.168.1.110 为VIP

注意: 此时keepalived的配置路径为 : /etc/keepalived/keepalived.conf
修改master的配置
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id NodeA
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_script chk_nginx {   #检查nginx进程脚本此处暂未启动
   script "/etc/keepalived/nginx_check.sh"  
   interval 2  
   weight -20  
} 

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {  # 执行上面检测nginx进程脚本
       chk_nginx  
    } 
    virtual_ipaddress {
        192.168.70.130
    }
}
修改backup配置
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id NodeB #自定义主机名
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_script chk_nginx {   #检查nginx进程脚本此处暂未启动
   script "/etc/keepalived/nginx_check.sh"  
   interval 2  
   weight -20  
} 

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {  # 执行上面检测nginx进程脚本
       chk_nginx  
    } 
    virtual_ipaddress {  #虚拟ip
        192.168.70.130
    }
}
编写nginx_check.sh脚本
#!/bin/sh  
A=`ps -C nginx --no-header |wc -l`  
if [ $A -eq 0 ];then  
    nginx  
    sleep 2  
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then  
        killall keepalived  
    fi  
fi  
重启keepalived服务
service keepalived restart
配置iptables
vim /etc/sysconfig/iptables
添加
-A INPUT -p vrrp -j ACCEPT

访问测试
访问http://192.168.70.130/,且分别stop掉master或者backup的keepalived服务,查看页面效果,为了方便,请提供不同的nginx访问页面。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋发元

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值