У меня есть клиент с сайтом электронной коммерции, и в чем проблема, Apache останавливается случайным образом, например, раз в 3-7 дней. Затем мы получаем от 20 минут до 2 часов простоя, пока не узнаем об этом через робота безотказной работы. И это не проблема сети, поскольку мы пробовали 3 разных хоста - Contabo, OVH, Shinjiru. Изящный перезапуск не удается. Я искал причину на форумах, но до сих пор ничего не нашел. Даже пытался исправить, удалив строки из logrotate, просмотрев этот учебник Apache автоматически останавливается каждое воскресенье. Зачем? но все равно не повезло!
Журналы Apache тоже ничего не говорят. Перезагрузку делали 4-5 раз, но все же.
Мы используем php7.0 с модулем SOAP с сайтом Wordpress, работающим с Woocommerce. Панель администратора - это Webmin, а операционная система - ubuntu 16.04.
клиент много жалуется, так как многие клиенты были потеряны, поскольку реклама Google удаляет сайт, если обнаруживает, что он не работает, и требуется 3-4 дня, чтобы снова получить список, но снова проблема с apache. пожалуйста помоги
Существуют краткосрочные и среднесрочные способы устранения этой проблемы.
Кроме того, если вам нужна полезная помощь с этого сайта, я бы посоветовал предоставить дополнительную информацию. Файлы конфигурации вашего сайта, файлы журналов и сообщения об ошибках, которые вы видели при выполнении команд. например вырежьте и вставьте текст вывода из команды изящного перезапуска
Короткий срок
Лучший способ устранить проблему, которая возникла ранее и не возникает сейчас, - это использовать файлы журнала.
Основной файл журнала ошибок apache2 находится по адресу /var/log/apache2/error.log
и у вас может быть настроен специальный журнал ошибок VirtualHost;
# grep ErrorLog /etc/apache2/sites-enabled/*.conf
/etc/apache2/sites-enabled/mysite1.org.conf: ErrorLog /var/log/apache2/mysite1.org-error.log
/etc/apache2/sites-enabled/mysite2.org.conf: ErrorLog /var/log/apache2/mysite2.org-error.log
Ошибки, связанные с перезапусками сервисов, будут регистрироваться в журнале;
# journalctl -u apache2
-- Logs begin at Sun 2018-07-08 01:35:01 UTC, end at Mon 2018-07-09 21:39:06 UTC. --
Jul 08 06:25:01 devhost1 systemd[1]: Reloading LSB: Apache2 web server.
Jul 08 06:25:01 devhost1 apache2[10537]: * Reloading Apache httpd web server apache2
Jul 08 06:25:02 devhost1 apache2[10537]: *
Jul 08 06:25:02 devhost1 apache2[2313]: DIGEST-MD5 common mech free
Jul 08 06:25:02 devhost1 systemd[1]: Reloaded LSB: Apache2 web server.
Чтобы посмотреть на конкретный период времени, используйте --since
и --until
# journalctl -u apache2 --since "2018-07-06 10:30:01" --until "2018-07-06 11:30:01"
Средняя степень
Ваше описание предполагает некую проблему нехватки ресурсов, которая накапливается со временем. Таким образом, память, файловые дескрипторы или, возможно, apache не могут обслуживать запросы из-за отсутствия процессора, io и т.д., и они находятся в очереди и тайм-ауте.
Поэтому обычно полезно отслеживать эти значения, используя какой-нибудь инструмент, установленный на коробке. Лично я бы использовал munin, потому что я знаком с ним, но он довольно старый, но поможет.
Еще один инструмент для отслеживания процессора, io, памяти - это пакет sysstat, который регистрирует полезную системную статистику, которую вы можете сравнить с периодами простоя.