Я хочу использовать monit, чтобы следить за своим сайтом. Я хочу, чтобы он относился к сайту как к внешнему пользователю, поэтому я тестирую URL-адрес, но, похоже, он не следует перенаправлениям. Проверка содержимого выполняется в HTML-коде перенаправления.
#request works:
if failed url http://www.sharelatex.com/blog/posts/future.html content == "301"
#request fails
if failed url http://www.sharelatex.com/blog/posts/future.html content == "actual content"
Было бы здорово узнать, как заставить URL-адрес следовать 30X.
Хотя я не вижу опции в страница руководства monit Чтобы заставить его следовать перенаправлениям, я думаю, что путем явного тестирования элементов перенаправления. Сначала проверяя заголовки перенаправления, а затем содержимое целевой страницы, вы добиваетесь того же.
(Вот ответ, включая перенаправление с запроса на sharelatex)
HTTP/1.1 301 Moved Permanently <---- response code here
Server: nginx/0.7.65
Date: Tue, 20 Mar 2012 22:04:48 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: https://www.sharelatex.com/blog/posts/future.html <---- target location here
Я бы использовал что-то вроде следующего:
check host www.sharelatex.com with address www.sharelatex.com
IF FAILED URL http://www.sharelatex.com/blog/posts/future.html content == "301 Moved Permanently"
then alert
IF FAILED URL http://www.sharelatex.com/blog/posts/future.html content == "Location: https://www.sharelatex.com/blog/posts/future.html"
then alert
IF FAILED URL https://www.sharelatex.com/blog/posts/future.html content == "ShareLaTeX"
then alert
Итак, разберем это ... Эти две строки проверяют, правильно ли перенаправляется страница HTTP: // и что она предоставляет правильную цель для перенаправления.
check host www.sharelatex.com with address www.sharelatex.com
IF FAILED URL http://www.sharelatex.com/blog/posts/future.html content == "301 Moved Permanently" then alert
IF FAILED URL http://www.sharelatex.com/blog/posts/future.html content == "Location: https://www.sharelatex.com/blog/posts/future.html" then alert
Затем проверьте, что вы были перенаправлены в нужное место и на наличие некоторого контента ....
затем следующие строки, которые явно следуют за перенаправлением и проверяют содержимое страницы HTTPS на https://www.sharelatex.com/blog/posts/future.html
IF FAILED URL https://www.sharelatex.com/blog/posts/future.html content == "ShareLaTeX" then alert
Я предполагаю, что первые команды собираются сделать кучу (2x) запросов на страницу, поэтому, возможно, стоит их как-то объединить ...