【小镇的技术天梯】lanmp服务器集群搭建(3)使用keepalived给nginx双机热备

时间:2022-09-13 18:14:41

小镇再上一遍服务器的架构图,服务器集群的冗余和热备规则就是在有ups,没有发生火灾地震的情况下,应该是保证web应用永不下线,要保证web应用永不下线,就是任何一台服务器宕机的情况下,整个服务器集群的工作都不会受到影响,架构图如下图所示:

【小镇的技术天梯】lanmp服务器集群搭建(3)使用keepalived给nginx双机热备

可以看出,如果apache的服务器坏掉一台,那么流量就会分到别的apache的服务器上面去,如果nginx的服务器坏掉了,那么nginx的backup服务器就会顶上去。

keepalived就可以实现nginx 和nginx(backup)之间的双机热备,keepalived使用的是vrrp协议,如果你不了解vrrp协议的话,可以查看下面链接:http://baike.baidu.com/link?url=BMkPAB46FosuHulQlNhzmYSYqiXM_EIkDuQlbSvA5rCD18z7KIcpeJy2f0UlSy7Jnq4XEqnRG-_sVtarg8dQS_。

首先在两个nginx的前端机上都装上keepalived。小镇使用的系统是centos7.2。

yum -y install gcc gcc+ gcc-c++
yum install popt-devel openssl openssl-devel libssl-dev libnl-devel popt-devel

wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz
tar -zxvf keepalived-1.2.2.tar.gz  
cd keepalived-1.2.2  
./configure  
make  
make install   

cp /usr/local/sbin/keepalived /usr/sbin/
cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
cp -r /usr/local/etc/keepalived/ /etc/

第二步给两个nginx前端都加上一个虚拟的ip,虚拟的ip都为192.168.1.88。然后这个ip就作为对外ip。

ifconfig eth0 192.168.1.88 netmask 255.255.255.0就可以了。

然后编辑keepalived的配置文件

192.168.1.100的配置文件如下,另外一个192.168.1.101的配置文件同理,吧master改为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 LVS_DEVEL
}

vrrp_script chk_http_port {
script "</dev/tcp/127.0.0.1/80"
interval 1
weight -2
}

vrrp_instance VI_1 {
state MASTER
interface eth2
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.88 
}
track_script {
chk_http_port
}
}

然后访问192.168.1.88,就可以看到相应的网页,这时候将192.168.1.100关机,再看看192.168.1.88是否能够访问,如果能够访问的话就代表双机热备成功了。