Директивы и блоки

Тема дорожной карты · Nginx

Конфигурация Nginx состоит из директив и блоков: директива — это отдельная инструкция, заканчивающаяся точкой с запятой (например, worker_processes auto;), а блок — именованный контейнер в фигурных скобках (например, блоки http, server, location и upstream), группирующий связанные директивы и задающий область наследования. Директивы Nginx зависят от контекста — gzip on; допустима в контекстах http, server и location, но не на верхнем уровне — а дочерние блоки наследуют значения, установленные родительскими блоками, если только они явно не переопределяют их собственными директивами. Вложенность блоков следует схеме main → http → server → location, причём блок events на уровне main управляет параметрами обработки соединений, такими как worker_connections 1024;, а блок http управляет всем поведением веб-сервера и обратного прокси. Понимание того, какие директивы Nginx относятся к какому контексту блока, необходимо для написания корректных конфигураций; ошибки выявляются при запуске командой nginx -t, проверяющей всё дерево конфигурационных файлов перед любой перезагрузкой. Освоение директив и блоков Nginx — ключевой навык для настройки виртуального хостинга, SSL/TLS, балансировки нагрузки, кэширования и всех других функций веб-сервера.

Как это работает

Директивы и блоки через distro-пакеты (apt install nginx / dnf install nginx) — но дистрибутивная версия отстаёт. Для свежего stable — официальный nginx-репозиторий. Главный конфиг: /etc/nginx/nginx.conf; per-site — в /etc/nginx/conf.d/*.conf или /etc/nginx/sites-available/ (Debian-стиль с симлинками в sites-enabled). Конфиг иерархический: events { }, http { server { location { } } }. Reload через nginx -s reload (zero-downtime). Тест до reload: nginx -t.

Когда применять

Официальный nginx.org-репо для production — distro-пакеты на месяцы позади. Всегда nginx -t до reload — синтаксическая ошибка = сервер down при рестарте (reload безопаснее). Server-level директивы — в /etc/nginx/conf.d/*.conf; nginx.conf минимальный. worker_processes auto и worker_connections 4096+ для современного железа.

Типичные ошибки

Ловушки Директивы и блоки: правка конфига без nginx -t сначала (битый конфиг + reload = downtime); оставлен server_tokens on (версия nginx утекает в Server:-заголовок); не удалена дефолтная страница welcome to nginx (info leak); ручное управление TLS-сертами вместо certbot/acme.sh (ручное = забытые ренью). nginx -V — для просмотра compiled-in модулей.

Связанные понятия

Полезные ресурсы