前言:
目前朋友们对“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集群测试用例