欢迎来到云服务器

系统配置

使用SHELL脚本监控Nginx服务实现高可用

编写SHELL脚本,来实现Nginx服务进程的高HA,脚本内容如下:

#!/bin/bash

while :

do

nginxpid=`ps -C nginx --no-header | wc -l`

if [ $$nginxpid -eq 0 ];then

/usr/local/nginx/sbin/nginx

sleep 5

nginxpid=`ps -C nginx --no-header | wc -l`

echo $$nginxpid

if [ $$nginxpid -eq 0 ];then

/etc/init.d/keepalived stop

fi

fi

sleep 5

done

我稍为解释一下,这是一个无限循环的脚本,放在主Nginx机器上(因为目前主要是由它提供服务),每隔5秒执行一次,用ps -C 命令来收集nginx的PID值到底是否为0,如果是0的话(即Nginx进程死掉了),尝试启动nginx进程;如果继续为0,即nginx启动失改,则关闭本机的Keeplaived进程,VIP地址则会由备机接管,当然了,整个网站就会由备机的Nginx来提供服务了,这样保证Nginx进程的高可用。

当然还有别的办法,比如我们可以写另外的SHELL脚本,每隔5秒wget首页的index.php或index.jsp文件或ping网站的VIP地址,如果$$?返回码为非零值(即错误),我们也可以关闭主Nginx机器,由备机接管,有兴趣的朋友可以自行编写这些脚本。

腾讯云代理

Copyright © 2003-2021 MFISP.COM. 国外vps服务器租用 梦飞云服务器租用 版权所有 粤ICP备11019662号