Apache2 остановился без какой-либо очевидной причины

Сегодня утром мне позвонили, что на одном из серверов не работает веб-сервер. Перезапуск процесса apache2 устранил проблему, но я не могу понять причину сбоя.

Я проверил все журналы, и единственная важная информация об аварии находится в error.log :

[Tue Feb 07 06:25:39.804775 2017] [mpm_prefork:notice] [pid 16376] AH00171: Graceful restart requested, doing restart
AH00557: apache2: apr_sockaddr_info_get() failed for ourdomain.com
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
[Tue Feb 07 06:25:59.749847 2017] [unique_id:alert] [pid 16376] (EAI 2)Name or service not known: AH01564: unable to find IPv4 address of "ourdomain.com"
[Tue Feb 07 06:26:09.760784 2017] [:emerg] [pid 16376] AH00020: Configuration Failed, exiting
[Tue Feb 07 11:44:50.000663 2017] [:notice] [pid 4841] ModSecurity for Apache/2.8.0 (http://www.modsecurity.org/) configured.
[Tue Feb 07 11:44:50.001311 2017] [:notice] [pid 4841] ModSecurity: APR compiled version="1.5.1"; loaded version="1.5.1"
[Tue Feb 07 11:44:50.001317 2017] [:notice] [pid 4841] ModSecurity: PCRE compiled version="8.35 "; loaded version="8.39 2016-06-14"
[Tue Feb 07 11:44:50.001324 2017] [:warn] [pid 4841] ModSecurity: Loaded PCRE do not match with compiled!
[Tue Feb 07 11:44:50.001326 2017] [:notice] [pid 4841] ModSecurity: LUA compiled version="Lua 5.1"
[Tue Feb 07 11:44:50.001328 2017] [:notice] [pid 4841] ModSecurity: LIBXML compiled version="2.9.1"
[Tue Feb 07 11:44:50.001330 2017] [:notice] [pid 4841] Original server signature: Apache/2.4.10 (Debian) OpenSSL/1.0.1t
[Tue Feb 07 11:44:50.001364 2017] [:notice] [pid 4841] ModSecurity: StatusEngine call: "2.8.0,StanSoftWeb 6.22,1.5.1/1.5.1,8.35/8.39 2016-06-14,Lua 5.1,2.9.1,82"
[Tue Feb 07 11:44:51.420554 2017] [:notice] [pid 4841] ModSecurity: StatusEngine call successfully sent. For more information visit: http://status.modsecurity.org/
[Tue Feb 07 11:44:52.000688 2017] [core:warn] [pid 4848] AH00098: pid file /var/run/apache2/apache2.pid overwritten -- Unclean shutdown of previous Apache run?

Мы точно не запрашивали принудительный перезапуск. Если это важно, сервер - это экземпляр AWS EC2. Я вижу этот плавный перезапуск в журналах каждые несколько часов, но без проблем - веб-сервер работал нормально несколько месяцев, за это время никаких изменений конфигурации.

AH00020: Ошибка конфигурации, выход из - это строка, которую я не могу себе объяснить.

У меня нет идей, кто-нибудь может подсказать, в чем причина сбоя?

0
07.02.2017, 08:33
1 ответ

первые несколько строк в вашем журнале показывают, что ваш DNS был недоступен, и Apache должен быть доступен, чтобы он мог найти FQDN вашего сайта , учитывая IP-адреса, к которым вы указали ему привязку. . (И для обработки заголовка HTTP / 1.1 Host , помимо прочего, требуется , что .)

Это дает вам несколько возможных решений:

  1. Используйте ] ServerName , чтобы явно дать Apache полное доменное имя, как предполагает запись в журнале. Тогда вам не нужен DNS.

  2. Убедитесь, что ваш DNS работает. Стандартная практика - использовать как минимум два DNS-сервера , в идеале разделенных географически, чтобы в случае отказа одного сервера или маршрута к этому серверу другой оставался доступным.

    DNS сильно замедляется, когда это происходит, когда системы истекают по тайм-ауту, ожидая истечения времени ожидания своих первых пакетов DNS, прежде чем пытаться выполнить второй, но, по крайней мере, в конечном итоге все продолжается. Здесь помогает кеширование DNS.

    Есть много компаний, которые ничего не делают, кроме как предоставляют вам вторичный DNS, поэтому вам не нужно настраивать целый другой центр обработки данных или арендовать целый экземпляр EC2 или VPS только для того, чтобы установить вторичный DNS-сервер. Многие другие компании предоставляют вторичный DNS в качестве одного из своих общих наборов услуг хостинга в Интернете.

  3. Используйте файл / etc / hosts вашей ОС для сопоставления IP-адресов с именами доменов и укажите преобразователю имен вашей ОС использовать эту информацию предпочтительно для DNS.Это не только быстрее, чем DNS, но и время его жизни неразрывно связано со временем жизни вашего хост-компьютера Apache. Единственный способ "спуститься" - это если кто-то нажмет жирным пальцем правку / etc / hosts .

    Если вы выберете этот вариант, рассмотрите возможность использования и вышеперечисленных вариантов. В любом случае вам нужен вторичный DNS, и нет особой причины заставлять Apache выполнять обратный поиск по IP-адресам, чтобы определить имена хостов в первую очередь, поскольку это не информация, которая, вероятно, изменится.

1
28.01.2020, 02:46

Теги

Похожие вопросы