Автоперезапуск сервера nginx или apache, если сайт перестал работать

keep-calm-and-restart-the-serverБывают случаи, когда вас нет на рабочем месте, а вы получаете на свою почту письмо от системы аналитики о недоступности вашего сайта… Вероятнее всего упал сервер, неважно по каким причинам он упал, ввиду атаки или неправильной конфигурации установленных модулей, его необходимо перезагружать. Добраться до ближайшего компьютера с выходом в интернет проблематично, а с телефона это сделать не всегда удается возможным.

Мы решили поделиться с вами скриптом автоперезагрузки сервера в случае когда сайт не доступен!

Создаем файл с названием restart.sh и следующим содержанием:


#!/bin/bash
#ПОДСТАВЛЯЕМ НАЗВАНИЕ ВАШЕГО САЙТА
SITE=http://yoursite.com
rm -f test.file
#НАПРАВЛЯЕМ ЗАПРОС WGET с измененным user-agent, на случай если у вас заблокирован wget в настройках сервера
wget --header="Accept: text/html" --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0" -q $SITE -O test.file
file_size=$(stat -c%s test.file)
if [ $file_size == 0 ]
then
#Перезапускаем сервисы !!!ВНИМАНИЕ!!! Для NGINX и APACHE команды разные, оставить только необходимые
#NGINX + PHP-FPM
service nginx restart
service php5-fpm restart
#APACHE
service httpd restart
fi

*На случай если вы хотите полного перезапуска сервера необходимо между then и fi написать всего одну команду:
reboot

Закачиваем файл на ваш сервер (например в папку /etc) и по ssh даем ему права на запуск от root.

[root@server]# chmod 700 /etc/restart.sh

Теперь необходимо прицепить данный скрипт к планировщику cron:

[root@server]# crontab -e

со следующими параметрами:

*/5 * * * * /etc/restart.sh

Данный скрипт будет запускаться каждые 5 минут для проверки работы сайта, в случае его недоступности сервер будет перезагружаться. Для изменения частоты проверки работоспособности, вместо /5 подставляем свое значение в часах или минутах. Для значения в часах это целое число, в минутах со знаком дроби.

Данное решение является заплаткой и небольшой страховкой. В первую же очередь мы рекомендуем разобраться с причинами падения сервера и устранить их.

Скрипт автоперезагрузки сервера nginx или apache, если сайт перестал работать
Автоперезапуск сервера nginx или apache, если сайт перестал работать
Дата: 11/02/2015
Скрипт автоперезагрузки сервера nginx или apache, если сайт перестал работать
Рейтинг: 5

Метки: , , , , , , , , , , , , , , , ,

Просмотров: 14 949

Комментариев пока нет.

Добавить комментарий

Top