keepalive+nginx集群架构文档

1.准备两台机器

A机器:192.168.153.101

B机器:192.168.153.102

A级器作为master,B机器作为backup
配置文件的时候 VIP定为 :192.168.153.100

2.两台机器都安装:keepalived

	yum install -y keepalived

3.两台机器上都安装nginx

		yum install -y nginx
		
注意:有时直接yum安装不了,需要安装yum扩展源:yum install -y epel-release

下面是在A机器上操作的

1.更改A机器上的更改keepalived配置文件

默认的配置文件路径在/etc/keepalived/keepalived.conf
清空文件内容

/etc/keepalived/keepalived.conf

编辑配置文件

	vim /etc/keepalived/keepalived.conf

添加加以下内容:

	global_defs {
	   notification_email {
	     aming@aminglinux.com
	   }
	   notification_email_from root@aminglinux.com
	   smtp_server 127.0.0.1
	   smtp_connect_timeout 30
	   router_id LVS_DEVEL
	}
	vrrp_script chk_nginx {
	    script "/usr/local/sbin/check_ng.sh"
	    interval 3
	}
	vrrp_instance VI_1 {
	    state MASTER
	    interface ens33
	    virtual_router_id 51
	    priority 100
	    advert_int 1
	    authentication {
	        auth_type PASS
	        auth_pass aminglinux>com
	    }
	    virtual_ipaddress {
	        192.168.153.100
	    }
	    track_script {
	        chk_nginx
	    }
	}

这里需要注意的是:"virtual_ipaddress"也就是所谓的vip我们设置为192.168.153.100

2.定义监控脚本

脚本路径在keepalived配置文件中有定义,路径为/usr/local/sbin/check_ng.sh

编辑配置文件:

vim /usr/local/sbin/check_ng.sh
增加以下内容:

#!/bin/bash
#时间变量,用于记录日志
d=date --date today +%Y%m%d_%H:%M:%S
#计算nginx进程数量
n=ps -C nginx --no-heading|wc -l
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq “0” ]; then
/etc/init.d/nginx start
n2=ps -C nginx --no-heading|wc -l
if [ n 2 − e q " 0 " ] ; t h e n e c h o " n2 -eq "0" ]; then echo " n2eq"0"];thenecho"d nginx down,keepalived will stop" >> /var/log/check_ng.log
systemctl stop keepalived
fi
fi

3.脚本创建完之后,还需要改变脚本的权限(不更改权限,就无法自动加载脚本,那就无法启动keepalived服务)

	chmod 755 /usr/local/sbin/check_ng.sh

4.启动keepalived服务,并查看是否启动成功

		systemctl start keepalived
		ps aux |grep keepalived

启动不成功,有可能是防火墙未关闭或者规则限制导致的

	systemctl stop firewalld 关闭firewalld
	iptables -nvL查看防火墙
	setenforce 0 临时关闭selinux
	getenforce命令查看是否为Permissive

这时再来启动keepalived,就会看到keepalived进程服务了

以下是B机器上的配置

1.自定义B机器keepalived配置文件,更改虚拟IP和主一样的,首先清空B机器keepalived里面自带的配置文件

配置文件路径:/etc/keepalived/keepalived.conf
清空:

/etc/keepalived/keepalived.conf

编辑配置文件:

vim /etc/keepalived/keepalived.conf
增加以下内容:

global_defs {
   notification_email {
     aming@aminglinux.com
   }
   notification_email_from root@aminglinux.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_script chk_nginx {
    script "/usr/local/sbin/check_ng.sh"
    interval 3
}
vrrp_instance VI_1 {
    state BACKUP        //这里 和master不一样的名字
    interface ens333        //网卡和当前机器一致,否则无法启动keepalived服务
    virtual_router_id 51        //和主机器 保持一致
    priority 90            //权重,要比主机器小的数值
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass aminglinux>com
    }
    virtual_ipaddress {
        192.168.153.100        //这里更改为192.168.153.100  
    }
    track_script {
        chk_nginx
    }
}

2.定义监控脚本,路径再keepalived里面已定义过

vim /usr/local/sbin/check_ng.sh
增加以下内容:

#时间变量,用于记录日志
d=`date --date today +%Y%m%d_%H:%M:%S`
#计算nginx进程数量
n=`ps -C nginx --no-heading|wc -l`
#如果进程为0,则启动nginx,并且再次检测nginx进程数量,
#如果还为0,说明nginx无法启动,此时需要关闭keepalived
if [ $n -eq "0" ]; then
        systemctl start nginx
        n2=`ps -C nginx --no-heading|wc -l`
        if [ $n2 -eq "0"  ]; then
                echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
                systemctl stop keepalived
        fi
fi

3.改动脚本的权限,设置为755权限

chmod 755 /usr/local/sbin/check_ng.sh

4.启动keepalived服务:

systemctl start keepalived
ps aux |grep keep

这时候就已经实现了 高可用
访问 192.168.153.100 看现在连接的是master主机
执行命令: systemctl stop keealived 就会切换到backup主机
执行命令:systemctl start keealived 又会重新切换回 master主机
这样我们就可以轻松实现了 主备的切换

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值