Структура конфигурации
Тема дорожной карты · Nginx
Структура конфигурации Nginx является иерархической: главный файл /etc/nginx/nginx.conf содержит глобальные директивы, за которыми следует блок http, включающий блоки server для виртуальных хостов и блоки location для маршрутизации запросов. На верхнем уровне директивы вроде worker_processes auto; и error_log /var/log/nginx/error.log warn; применяются глобально, тогда как директивы уровня http, такие как keepalive_timeout, gzip и log_format, задают значения по умолчанию, наследуемые всеми виртуальными хостами, если только те их не переопределяют. Модульный шаблон include /etc/nginx/conf.d/*.conf; — стандартный способ разбить большую конфигурацию на файлы отдельных сайтов, сохраняя читаемость главной конфигурации и уменьшая конфликты при слиянии в версионированной инфраструктуре. Каждый блок server определяет виртуальный хост с собственным портом listen, директивой server_name, SSL/TLS-сертификатами и правилами маршрутизации location для обратного прокси, балансировки нагрузки или отдачи статических файлов. Понимание структуры конфигурации Nginx — и правил наследования между контекстами http, server и location — является обязательным условием для корректного применения любой директивы в веб-сервере.
Как это работает
Структура конфигурации через 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 модулей.