龙空技术网

Keepalived+Nginx高可用集群配置测试

程序学习笔记 1048

前言:

目前朋友们对“nginx集群测试用例”都比较关注,你们都想要学习一些“nginx集群测试用例”的相关知识。那么小编也在网上网罗了一些有关“nginx集群测试用例””的相关知识,希望兄弟们能喜欢,大家快快来学习一下吧!

Keepalived+Nginx高可用集群配置,准备两台机器来测试,每台机器都需要安装keepalived和nginx。

nginx的安装及常用配置在前面笔记已经有。以下是keepalived在linux上安装及常用命令:

yum命令安装:

安装依赖包:yum install -y curl gcc openssl-devel libnl3-devel net-snmp-devel安装:yum install -y keepalived

这样就能安装好,可以用find / -name keepalived命令查询其安装目录。

其配置文件在/etc/keepalived/目录下的keepalived.conf。

重要的是global_defs和vrrp_instance

配置主机192.168.1.101的配置文件keepalived.conf:

同时为了方便测试,修改nginx的默认访问文件,/usr/local/nginx/html/index.html文件,访问时显示本机ip。

配置备份机器,地址是192.168.1.103

修改nginx的/usr/local/nginx/html/index.html文件

启动keepalived

systemctl start keepalived.service

使用自定义虚拟ip访问:

可以访问到101机器上的nginx,可以把主的机器101上keepalived挂掉,再访问:

此时已经切换到备份机器103。

实际情况keepalived不容易挂掉,容易挂掉的是nginx。若nginx挂掉了,但是keepalived没事,这时候就访问不到服务了。

我们可以借助keepalived的vrrp_scrip配置调用自定义shell脚本。

有以下脚本:

#!/bin/bashecho 'xxx'count_nginx=`ps -ef|grep -w nginx|grep -v grep|wc -l`echo $count_nginxif [ $count_nginx -eq 0 ];then   			/usr/local/nginx/sbin/nginx   		sleep 2    		if [ `ps -ef|grep -w nginx|grep -v grep|wc -l` -eq 0 ];then          systemctl stop keepalived.service    	f  ifi

这段脚本大概意思是:统计nginx进程数,假如是0个,说明nginx挂掉了,那就启动nginx,等2秒,再统计,假如还是0,说明nginx启动失败,那么就把keepalived也挂掉切换到备份机器,假如不是0,说明启动成功,那就继续运行。

编写脚本文件,运行看看它的效果:

输出2,说明nginx正常。现在将nginx停掉,

停掉nginx/usr/local/nginx/sbin/nginx -s stop

再运行脚本 ,看能否把nginx启动起来:

第一次运行输出0,第二次输出 2,说明脚本能查到nginx挂掉并启动起来。

现在将脚本配置到keepalived中。

在配置文件中添加以下配置

vrrp_script chk_http_port{   script "/home/shell/nginx_check.sh" #脚本地址     interval 2 #检测脚本执行间隔 秒     weight 2 #比重}  

注意,主机和备份机器都需要。配置好之后再重启keepalived即可。

标签: #nginx集群测试用例