一个运行中的进程,难免会因为各种各样的原因无缘无故的宕掉(比如网站瞬间的负载过高、内存不足等),而Jexus宕掉的后果往往只有一个:对外提供服务的网站无法访问了。因此,我们需要最大限度的保障我们的网站能够提供7*24小时的不间断访问,而一个网站或者一个进程宕掉的过程是瞬间的,也许前一秒还访问得好好的,下一秒就突然间报个404的错误,而从网站或进程挂掉到我们人工的发现并重启服务的过程是漫长的,除非该网站有应对单点故障的解决方案,否则在这漫长的时间之中,网站都处于一个无法访问的黑色时期。如果这个宕掉的网站是一个企业网站,这会造成企业信誉度的下降;如果是一个商城网站,这会造成经济和人气的损失;因此,我们需要让系统能够自动的检测出网站的运行状态,当出现进程服务死机的时候能够自动重启。
jws.guard的是一个python的脚本,工作原理也比较简单:根据设置好的预设值,每隔十秒钟访问一次访问一次指定的端口与文件,当三十秒内出现无法网站时就执行jws.restart进行重启网站。这里的三十秒指的是累计连续三次无法访问,防止因为检测时因为Jexus正忙而误判断重启,对网站进行误伤。
jws.guard的使用方法也比较简单,只要把 “tools/jws_guard” 目录中的 “guard.py” 和 “jws.guard” 两个脚本文件拷贝到Jexus的工作目录(跟jws.start同一目录),然后配置一下jws.guard 中的预设值即可。
我们首先把这两个文件拷贝出去
cd /usr/local/jexus/tools/jws_guard/
cp jws.guard guard.py /usr/local/jexus/
cd /usr/local/jexus/
我们已经把这两个脚本拷贝到工作目录中。
用vi打开并编辑jws.guard
把host、port、path改为我们需要的配置即可,它们分别代表主机地址,端口,检查的路径。一般情况下,如果Jexus采用80端口,这里可以不作修改直接使用,而如果Jexus采用的不是80端口,也只需要修改port,改为正确的端口并保存退出就可以了。host和path一般是不需要修改的,同时也不建议非必要的修改,因为修改jws.guard必须确保修改后修改的配置项是正确的,否则jws.guard就会因为无法访问配置后的网站而反复的重启Jexus,造成不必要的麻烦。
修改好了之后只需要执行./jws.guard即可启动这款Jexus的进程守护工具。
我们尝试性的把Jexus关掉。
……30秒之后……
Jexus又起来了。
通过jws.guard守护守护工具,我们可以很方便的让系统自动的发现Jexus进程宕机并快速的重启进程。同时我们只需要查阅Jexus的运行日志即可发现问题所在。
这里有三点需要提醒的:
(1)、如果需要关闭Jexus服务30秒以上的,请在关闭Jexus之前先执行./jws.guard stopg关闭jws.guard守护工具,以免守护工具自动的把Jexus又启动了起来。
(2)、jws.guard是使用python语言编写的脚本,需要运行该工具时请确保系统中已经安装了python,检查方式可以执行 python -V ,如果没有出现python的版本信息则说明系统中没有安装python,这是,各位读者可以通过yum或者其他方式安装上python之后再运行jws.guard。
(3)、再啰嗦一次,配置jws.guard时请确保配置的值是正确的。
新版的Jexus的稳定性已经非常强,加上jws.guard可以起到加固作用。
好的,至此Jexus的守护工具jws.guard就已经介绍完毕了。