当前位置: > shell编程 >

SHELL脚本,来实现Nginx服务进程高可用

时间:2014-04-29 00:17来源:linux.it.net.cn 作者:IT网
编写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机器,由备机接管,有兴趣的朋友可以自行编写这些脚本。
(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容