ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
Gena Makhomed
gmm на csdoc.com
Чт Ноя 9 14:57:53 UTC 2017
On 09.11.2017 15:56, Konstantin Pavlov wrote:
>> В чем смысл директивы
>>
>> ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
>>
>> в файле /usr/lib/systemd/system/nginx.service ?
В инит-скрипте CentOS 6 все сделано правильно, там конфиг тестируется
только перед тем как выполнить рестар сервера:
restart() {
configtest_q || return 6
stop
start
}
configtest_q() {
$binary -t -q -c $config
}
и если тестирование конфигурации завершилось ошибкой -
работающий nginx не останавливаается.
В юнит-файле CentOS 7 эта строчка
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
выглядит совершенно лишней и не нужной, она только создает проблемы.
Может быть имеет смысл вообще убрать строку
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
из юнит-файла? Хуже от этого ведь не станет, только лучше.
Или я ошибаюсь и в этой строчке есть какой-смысл? Какой?
>> У меня из-за этой фигни nginx не поднялся после того,
>> как сервер перезапустился. В логах вот такая запись:
>>
>> Nov 09 13:26:30 example.com nginx[851]: nginx: [warn] "ssl_stapling" ignored, host not found in OCSP responder "ocsp.int-x3.letsencrypt.org" in the certificate "/etc/letsencrypt/live/example.net/fullchain.pem"
>> Nov 09 13:26:51 example.com nginx[851]: nginx: [warn] "ssl_stapling" ignored, host not found in OCSP responder "ocsp.int-x3.letsencrypt.org" in the certificate "/etc/letsencrypt/live/example.net/fullchain.pem"
>> Nov 09 13:27:11 example.com nginx[851]: nginx: [warn] "ssl_stapling" ignored, host not found in OCSP responder "ocsp.int-x3.letsencrypt.org" in the certificate "/etc/letsencrypt/live/example.net/fullchain.pem"
>> Nov 09 13:27:31 example.com nginx[851]: nginx: [warn] "ssl_stapling" ignored, host not found in OCSP responder "ocsp.int-x3.letsencrypt.org" in the certificate "/etc/letsencrypt/live/example.net/fullchain.pem"
>> Nov 09 13:27:40 example.com systemd[1]: nginx.service start-pre operation timed out. Terminating.
>> Nov 09 13:27:40 example.com systemd[1]: Failed to start nginx - high performance web server.
>> Nov 09 13:27:40 example.com systemd[1]: Unit nginx.service entered failed state.
>> Nov 09 13:27:40 example.com systemd[1]: nginx.service failed.
>>
>> После того как вручную сделал systemctl restart nginx - все поднялось.
>
> Строчка в 13:26:30 - первая после запуска сервиса?
Из лога видно, что перед каждой такой строчкой [warn] nginx "думает"
примерно 20 секунд.
Таймаут получается ровно 90 секунд.
> Что выводит systemctl -a show nginx.service | grep -i timeout?
# systemctl -a show nginx.service | grep -i timeout
TimeoutStartUSec=1min 30s
TimeoutStopUSec=1min 30s
JobTimeoutUSec=0
JobTimeoutAction=none
JobTimeoutRebootArgument=
--
Best regards,
Gena
Подробная информация о списке рассылки nginx-ru