nginx.service start operation timed out. Terminating.

Gena Makhomed gmm на csdoc.com
Ср Авг 14 17:02:53 UTC 2019


On 14.08.2019 18:01, Maxim Dounin wrote:

>> Aug 14 16:22:35 vm nginx: nginx: [warn] "ssl_stapling" ignored, host not
>> found in OCSP responder "ocsp.int-x3.letsencrypt .org" in the
>> certificate "/etc/letsencrypt/live/example.com/fullchain.pem"
>> Aug 14 16:23:03 vm systemd: nginx.service start operation timed out.
>> Terminating.
>> Aug 14 16:23:03 vm systemd: Failed to start nginx - high performance web
>> server.
>> Aug 14 16:23:03 vm systemd: Unit nginx.service entered failed state.
>> Aug 14 16:23:03 vm systemd: nginx.service failed.
>>
>> Подскажите пожалуйста, каким образом можно сконфигурировать nginx, чтобы
>> он нормально запускался и работал на втором узле кластера даже в том
>> случае, когда Failover IP указывает на первый физический сервер и
>> виртуальная машина, запускаемая на втором физическом сервере не имеет
>> доступа в интернет?

> Нужно либо убрать из из конфигурации всё, что требует резолвинга
> имён, и соответственно требует доступа в интернет, либо сделать
> этот резолвинг возможным (добавив соответствующие имена в
> /etc/hosts или обеспечив работу DNS).
> 
> Включённый OCSP stapling - пытается резолвить имена OCSP-серверов
> из сертификатов на старте.  Он, при этом, умеет автоматически
> выключаться, если разрезолвить имя не удаётся, но, судя по всему,
> сертификатов больше одного, а системный резолвер про отсутствие
> интернета не в курсе и тупо ждёт таймаутов, так что случается уже
> таймаут на запуск nginx'а в systemd.

Да, Вы правы, сертификатов больше одного.
Выключил ssl_stapling - теперь все запускается и работает нормально.
Спасибо!

Разве есть возможность системный резолвер научить понимать что нет 
интернета, если IP адрес сконфигурирован статически на CentOS 7.6?
Как это можно сделать? (Подозреваю что такой возможности нет и не будет)

Может быть можно научить nginx не использовать системный резолвер
при старте для резолвинга имен хостов OCSP responder'ов
из загружаемых им SSL сертификатов?

Не понятно, зачем nginx это делает, если в конфиге указана директива
resolver и наличие ответа от OCSP responder не является необходимым
для нормального запуска и последующей нормальной работы веб-сервера.

Может лучше было бы резолвить имена OCSP-серверов из сертификатов
не при старте а в момент первого запроса к серверу, или делать
автоматический preload ответов OCSP-серверов уже после того,
как nginx будет полностью сконфигурирован и запущен?

Потому что сейчас без интернета или при сбоях в работе системного
резолвера при включенном в конфиге OCSP stapling - nginx вообще
не запускается и это самым катастрофическим образом сказывается
на надежности работы сервера - запуск nginx завершается ошибкой
и все сайты становятся нерабочими. Это хуже чем OCSP Must-Staple.

-- 
Best regards,
  Gena



Подробная информация о списке рассылки nginx-ru