您的位置:首页 > 运维架构 > Nginx

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

2017-12-25 18:48 447 查看
首先确认系统已经安装好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[/code] 
解压安装包

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访问页面。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: