SHELL脚本,来实现Nginx服务进程高可用,shellnginx当然还有别的办法,比


编写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机器,由备机接管,有兴趣的朋友可以自行编写这些脚本。

相关内容

    暂无相关文章