nginx+keeplived实现高可用站点主备模式搭建
2017-05-10 14:45
666 查看
Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat、corosync、pacemaker。但是它一般不会单独出现,而是与其它负载均衡技术(如lvs、haproxy、nginx)一起工作来达到集群的高可用。
下载安装包
nginx下载地址:http://nginx.org/download/
keepalived下载地址:http://www.keepalived.org/software/
可根据需要下载对应的版本,我这里使用 nginx-1.6.2.tar.gz keepalived-1.2.18.tar.gz
两台centos 虚拟机:
192.168.1.236 和192.168.1.237
使用236作为master ,237作为backup
1)安装nginx
分别在236,237上面安装好nginx ,安装教程参见:http://blog.csdn.net/sunqingzhong44/article/details/68948980
2)安装keepalived
解压:
tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local
安装依赖包:
yum install -y openssl openssl-devel
编译安装:
./configure --prefix=/usr/local/keepalived
make && make install
将keepalived加入系统服务:
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
ln -s /usr/local/sbin/keepalived /usr/sbin
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
3)配置keepalived
查看两台虚拟机网卡
ip a
修改keepalived.conf文件:
vim /etc/keepalived/keepalived.conf
236(master节点)改为:
237(backup节点)改为:
脚本nginx_check.sh:
启动:
分别启动 两台主机的nginx ,在启动keepalived:
/usr/local/nginx/sbin/nginx #启动nginx
service keepalived start #启动keepalived
这时在使用ip a命令查看网卡:
可以看出主机236 已经虚拟成功,237备机无任何变化,这是我们可以将两台nginx 的index页面内容修改不一样,加入当前ip,再通过浏览器访问http://192.168.1.123,可以看到:
可以看出此时是236做出的相应:
我们将236的keepalived停掉 ,再次访问
nginx已经切换到了237,我们在重启236的keepalived ,我们会发现又会切换到236
因为脚步会自动重启nginx ,这里我们将236的nginx.conf文件加入一些错误内容,使nginx启动不起来,,停掉236nginx,这时脚步会将keepalilved也停掉 ,此时访问发现又会自动切换到237,将236 nginx.conf内容恢复,keepalived启动,又再次恢复到了236,则主备可以自动切换
下载安装包
nginx下载地址:http://nginx.org/download/
keepalived下载地址:http://www.keepalived.org/software/
可根据需要下载对应的版本,我这里使用 nginx-1.6.2.tar.gz keepalived-1.2.18.tar.gz
两台centos 虚拟机:
192.168.1.236 和192.168.1.237
使用236作为master ,237作为backup
1)安装nginx
分别在236,237上面安装好nginx ,安装教程参见:http://blog.csdn.net/sunqingzhong44/article/details/68948980
2)安装keepalived
解压:
tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local
安装依赖包:
yum install -y openssl openssl-devel
编译安装:
./configure --prefix=/usr/local/keepalived
make && make install
将keepalived加入系统服务:
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
ln -s /usr/local/sbin/keepalived /usr/sbin
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
3)配置keepalived
查看两台虚拟机网卡
ip a
修改keepalived.conf文件:
vim /etc/keepalived/keepalived.conf
236(master节点)改为:
! Configuration File for keepalived global_defs { router_id 192.168.1.236 #当前机器的ip } vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" #这个文件在后面 interval 2 weight -20 } vrrp_instance VI_1 { state MASTER #主节点 interface eth0 #配置要看上面ip a命令查询出的网卡 virtual_router_id 123 mcast_src_ip 192.168.1.236 priority 100 #优先级 主机大与备机 advert_int 1 authentication { auth_type PASS auth_pass manager #主备配置为一样 } track_script { #执行上面配置的script chk_nginx } virtual_ipaddress { 192.168.1.123 #虚拟ip } }
237(backup节点)改为:
! Configuration File for keepalived global_defs { router_id 192.168.1.237 } vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" interval 2 weight -20 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 123 mcast_src_ip 192.168.1.237 priority 90 advert_int 1 authentication { auth_type PASS auth_pass manager } track_script { chk_nginx } virtual_ipaddress { 192.168.1.123 } }
脚本nginx_check.sh:
#!/bin/sh A=`ps -C nginx --no-header | wc -l` if [ $A -eq 0 ];then /usr/local/nginx/sbin/nginx sleep 2 if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then killall keepalived fi fi
启动:
分别启动 两台主机的nginx ,在启动keepalived:
/usr/local/nginx/sbin/nginx #启动nginx
service keepalived start #启动keepalived
这时在使用ip a命令查看网卡:
可以看出主机236 已经虚拟成功,237备机无任何变化,这是我们可以将两台nginx 的index页面内容修改不一样,加入当前ip,再通过浏览器访问http://192.168.1.123,可以看到:
可以看出此时是236做出的相应:
我们将236的keepalived停掉 ,再次访问
nginx已经切换到了237,我们在重启236的keepalived ,我们会发现又会切换到236
因为脚步会自动重启nginx ,这里我们将236的nginx.conf文件加入一些错误内容,使nginx启动不起来,,停掉236nginx,这时脚步会将keepalilved也停掉 ,此时访问发现又会自动切换到237,将236 nginx.conf内容恢复,keepalived启动,又再次恢复到了236,则主备可以自动切换
相关文章推荐
- LVS+keeplived+nginx+apache搭建高可用、高性能php集群
- LVS+keeplived+nginx+apache搭建高可用、高性能php集群
- LVS+keeplived+nginx+apache搭建高可用、高性能php集群
- LVS+keeplived+nginx+apache搭建高可用、高性能php集群
- LVS+keeplived+nginx+apache搭建高可用、高性能php集群 推荐
- LVS+keeplived+nginx+apache搭建高可用、高性能php集群
- LVS+keeplived+nginx+apache搭建高可用、高性能php集群
- LVS+keeplived+nginx+apache搭建高可用、高性能php集群
- LVS+keeplived+nginx+apache搭建高可用、高性能php集群
- nginx+keepalived搭建高可用负载均衡(主备模式)
- LVS+keeplived+nginx+apache搭建高可用、高性能php集群
- KeepLived + Nginx 实现高可用 负载均衡 原理
- LVS+keeplived+nginx+apache搭建高可用、高性能php集群
- LVS+keeplived+nginx+apache搭建高可用、高性能php集群
- Nginx+Keepalived实现站点高可用(负载均衡)
- LVS+keeplived+nginx+tomcat高可用、高性能jsp集群
- 【 Linux 】lvs-dr模型实现HA,后端Nginx、PHP、MySQL分离 搭建wordpress站点
- Nginx+Keepalived实现站点高可用[z]
- Nginx+Keepalived实现站点高可用
- LVS+keeplived+nginx+tomcat高可用、高性能jsp集群