设置 monit 以与 Varnish 和 nginx 配合使用

设置 monit 以与 Varnish 和 nginx 配合使用

我的 monit 存在问题,Varnish 有时会崩溃并拒绝启动。因此,Varnish 已死,我的网络服务器无法访问。以下是来自 monit 日志的消息:

info     : 'varnish' stop: /etc/init.d/varnish
info     : 'varnish' start: /etc/init.d/varnish
error    : monit: Error reading pid from file '/var/run/varnish.pid'

在 Varnish 监视器中,我想到设置一个选项来重新启动 nginx,以便当发生以下情况时它可以再次在端口 80 上监听外部请求:

if 3 restarts within 3 cycles
    then exec "/etc/init.d/nginx restart"
    and timeout

除了我调用它之外,有时 nginx 会成功停止......但永远不会再次启动。

我想到解决方案有点像黑客技术(kill -9 nginx && /etc/init.d/nginx start)和(killall -9 varnishd && rm -f /var/run/varnish.pid)。

我希望有人能针对上述两个问题提出建议。谢谢!

答案1

你将永远与 monit 作斗争;我不建议任何人使用它。更强大的架构是这样的守护进程工具

答案2

永远不要使用 -9,但是如果您已经尝试过 -3 和 -15,它会使套接字保持打开状态,并且应用程序基本上没有机会自行清理。

答案3

重新启动 nginx 时我遇到了类似的问题。我使用类似这样的方法:

/etc/init.d/nginx stop
sleep 2
/etc/init.d/nginx start

而且它有效

相关内容