ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf

Maxim Dounin mdounin на mdounin.ru
Чт Ноя 9 14:56:38 UTC 2017


Hello!

On Thu, Nov 09, 2017 at 04:36:19PM +0200, Gena Makhomed wrote:

> On 09.11.2017 15:41, Илья Шипицин wrote:
> 
> >> в момент запуска nginx доступен ресолвер ?
> 
> В конфиге у меня ресолвер вот так прописан:
> 
>      ssl_stapling on;
>      resolver 8.8.8.8 8.8.4.4 ipv6=off;
> 
> Да, вполне может быть и так, что не были доступны ресолверы,
> иначе я не знаю чем еще объяснить, почему проверка конфига
> 
> $ nginx -T | grep "server {" | wc -l
> 21
> 
> $ nginx -T | grep "ssl_certificate_key" | wc -l
> 7
> 
> заняла более 90 секунд. Доступ ко всем бекендам прописан
> через статические IP внутренней сети, там ресолвер не используется:
> 
> proxy_pass http://172.22.22.121/;
> 
> Ресолвер в конфиге я включал только из-за директивы "ssl_stapling on".
> 
> Но ведь ssl_stapling - это дополнительная функциональность,
> nginx же вполне может запуститься и работать вообще без ssl_stapling.
> 
> Тем более, что это был даже не запуск nginx, а просто проверка конфига.
> 
> Может быть во время проверки конфига на валидность имеет смысл
> вообще не ждать по 90 секунд неизвестно чего из-за директивы
> "ssl_stapling on" ?

При использовании ssl_stapling nginx использует getaddrinfo() (то 
есть системный резолвер) для получения адресов на старте, а в 
процессе работы - обновляет адреса с помощью заданных в директиве 
resolver DNS-серверов.

Так что сколько именно секунд ждать - это вопрос в первую очередь 
к настройкам системного резолвера.

-- 
Maxim Dounin
http://mdounin.ru/


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