Каждое воскресенье в 3 раза перезагружается Apache. Проблема в том, что на сервере есть сертификат с зашифрованным закрытым ключом. Поскольку пароль не указан во время автоматического перезапуска, apache останавливается, и все мои веб-сайты отключаются.
Я хочу, чтобы Apache не перезагружался каждую неделю. Как? Вот журнал apache на тот момент. Перед [notice] caught SIGTERM, shutting down
нет ничего актуального, если вам интересно ...
[Sun Feb 15 03:37:12 2015] [notice] caught SIGTERM, shutting down
[Sun Feb 15 03:37:12 2015] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Sun Feb 15 03:37:13 2015] [error] Init: Unable to read pass phrase [Hint: key introduced or changed before restart?]
[Sun Feb 15 03:37:13 2015] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Sun Feb 15 03:37:13 2015] [error] SSL Library Error: 218640442 error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error
[Sun Feb 15 03:37:13 2015] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Sun Feb 15 03:37:13 2015] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
[Sun Feb 15 03:37:13 2015] [error] SSL Library Error: 67710980 error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib
[Sun Feb 15 03:37:13 2015] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[Sun Feb 15 03:37:13 2015] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
[Sun Feb 15 11:09:41 2015] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Sun Feb 15 11:09:44 2015] [notice] Digest: generating secret for digest authentication ...
[Sun Feb 15 11:09:44 2015] [notice] Digest: done
[Sun Feb 15 11:09:44 2015] [notice] FastCGI: wrapper mechanism enabled (wrapper: /usr/sbin/suexec)
[Sun Feb 15 11:09:44 2015] [notice] FastCGI: process manager initialized (pid 11309)
[Sun Feb 15 11:09:44 2015] [notice] Apache/2.2.15 (Unix) mod_ssl/2.2.15 OpenSSL/1.0.0-fips mod_fastcgi/2.4.6 configured -- resuming normal operations
Дополнительная информация:
/usr/sbin/raid-check
это единственное задание cron, которое выполняется в воскресенье вечером (1:00), но если я запустил его вручную, с Apache ничего не случится ...Вероятная причина - постскриптум в скрипте logrotate. Это сценарий, который запускается после ротации журнала. Файл должен называться /etc/logrotate.d/apache2 или /etc/logrotate.d/httpd (в зависимости от дистрибутива) и выглядеть примерно так:
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
Соответствующая часть - «перезагрузка httpd службы». Один из способов решить эту проблему - просто удалить последние 4 строки (от общих скриптов до конечных, включая эти две). Кроме того, добавьте параметр copytruncate, чтобы ваш сценарий logrotate стал:
/var/log/httpd/*log {
copytruncate
missingok
notifempty
}
copytruncate устранит необходимость перезапуска apache, поскольку он скопирует содержимое файла журнала, а затем обнулит его, поэтому дескриптор файла останется прежним, а процесс apache не заметит никаких изменений.
Чтобы проверить logrotate, запустите:
logrotate -f /etc/logrotate.d/httpd
Кроме того, подумайте о настройке закрытого ключа без пароля, потому что это плохая практика, и, очевидно, теперь вы понимаете, почему :)