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

301 ответ, когда monit проверяет наличие файла на nginx

У меня есть сценарий мониторинга, который проверяет, что nginx запущен и работает. Единственное, что он делает, это проверяет наличие файла «ping.txt». Я могу просмотреть его в браузере, но что заставит скрипт вернуть ответ перенаправления 301?

фрагмент скрипта monit:

if failed port 80 protocol http and request '/ping.txt'

Вот что находится в журнале nginx:

127.0.0.1 - - [29/Feb/2012:20:59:58 +0000] "GET /ping.txt HTTP/1.1" 301 185 "-" "monit/5.2.5"

Действительно ли вы можете просматривать ping.txt на локальном хосте? Возможно, вам нужно попробовать LAN IP.

Вы можете использовать для тестирования оболочку браузера, такую ​​как lynx или links2. Из вашего комментария я вижу, что вы, возможно, настроили его как виртуальный хост. Вам может потребоваться доступ к веб-странице, используя имя хоста или полный URL-адрес, т.е. http://www.example.org/ping.txt.

В вашем примере вы пытаетесь получить доступ к 127.0.0.1, поэтому ваш веб-сервер возвращает 301.

Чтобы изменить хост, сделайте что-то вроде:

check host host.example.com with address 192.0.43.10
if failed port 80 protocol http and request '/ping.txt'

Или оставьте адрес.

Я знаю, что это старый, но у меня была та же проблема, и я подошел к этому вопросу через поиск в Google "monit 301". Проблема в моем случае после довольно большого количества выдергивания волос заключалась в том, что "monit не устанавливал заголовок имени хоста при проверке моего сервера, таким образом он не был направлен на правильный виртуальный хост. Вы можете добавить имя хоста к проверке с помощью директивы hostheader, например:

check host www.mysite.co.uk with address wwwmysite.co.uk
  if failed
     port 443 protocol https
     and request / hostheader www.mysite.co.uk
     and status = 200
  then alert