Хотя EngineX работает, похоже, что monit не может этого понять.
Вот мой журнал мониторинга:
[PDT Apr 13 02:19:19] error : HTTP error: Server returned status 400
[PDT Apr 13 02:19:19] error : 'nginx' failed protocol test [HTTP] at INET[localhost:80] via TCP
[PDT Apr 13 02:19:19] info : 'nginx' trying to restart
[PDT Apr 13 02:19:19] info : 'nginx' stop: /etc/init.d/nginx
[PDT Apr 13 02:19:20] info : 'nginx' start: /etc/init.d/nginx
Файл monitrc содержит следующую конфигурацию:
if failed port 80 protocol http and request '/ping.txt' # check for response
with timeout 20 seconds
then restart
Я могу получить доступ к файлу через рысь http: // локальный: 80 / ping.txt без проблем.
Почему у monit проблемы с запросом файла, когда nginx работает нормально?
Проблема оказалась причиной несоответствия версий.
Мой исходный файл monitrc был предназначен для версии v5 +, но в окне, на котором он работал, использовался Monit 4.1.
Nginx старше 0.6.15 возвращал 400 на такие запросы, как GET http://www.domain.com HTTP / 1.0. Я полагаю, вы обновляли Nginx за последние два года? Если да, попробуйте поднять уровень отладки Nginx и опубликовать логи здесь.