编写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呆板,由备机经受,有乐趣的伴侣可以自行编写这些剧本。