Назад | Перейти на главную страницу

Настройка monit для работы с Varnish и nginx

У меня проблема с monit, из-за которой Varnish иногда дает сбой и отказывается запускаться. Итак, Varnish мертв, а мой веб-сервер недоступен. Вот сообщение из журнала мониторинга:

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).

Я надеялся, что кто-нибудь сможет предложить предложения по любой из двух вышеуказанных проблем. Спасибо!

У меня аналогичная проблема при перезапуске nginx. Я использую что-то вроде этого:

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

И это работает

никогда не используйте -9, НО ТОЛЬКО если вы уже пробовали -3 и -15, он оставляет сокеты открытыми, и в основном приложение не имеет возможности очистить после себя.

Вы будете вечно сражаться с монитом; Я никому не рекомендую использовать его ни для чего. Гораздо более надежная архитектура - это что-то вроде DAEMON Tools.