nginx.conf
Тема дорожной карты · Nginx
Файл nginx.conf является главным конфигурационным файлом веб-сервера Nginx, расположенным по умолчанию в /etc/nginx/nginx.conf. Этот файл управляет всеми аспектами обработки соединений, журналирования и запросов. Управление этими аспектами осуществляется через иерархию контекстов, включающую main, events, http, server и location. Каждый из этих контекстов определяет область действия конкретных директив, управляющих производительностью и поведением Nginx. Лучшие практики работы с nginx.conf включают сохранение главного файла лаконичным за счёт использования директив include для подключения модульных фрагментов конфигурации из /etc/nginx/conf.d/ или /etc/nginx/sites-enabled/. После редактирования nginx.conf всегда проверяйте синтаксис командой nginx -t перед применением изменений через nginx -s reload, чтобы избежать простоев. Хорошо структурированный nginx.conf — основа высокопроизводительного обратного прокси, балансировщика нагрузки или слоя SSL/TLS-терминации.
Как это работает
nginx.conf иерархически организован, начиная с основного конфигурационного файла /etc/nginx/nginx.conf. В этом файле определены основные параметры и директивы для всего сервера. Для каждого сайта создается отдельный конфигурационный файл, расположенный в /etc/nginx/conf.d/*.conf или /etc/nginx/sites-available/ (в Debian-стиле с симлинками в sites-enabled).
Каждый из контекстов в nginx.conf имеет свою область действия. Например, контекст events определяет параметры обработки событий, такие как управление соединениями и потоками. Контекст http включает в себя параметры для обработки HTTP-запросов, включая настройки кэширования и сжатия. Контекст server определяет параметры для каждого виртуального сервера, включая настройки SSL/TLS и маршрутизацию запросов. Контекст location позволяет настроить поведение сервера для определенных URL-маршрутов.
После редактирования конфигурационного файла всегда проверяйте синтаксис командой nginx -t и примените изменения через nginx -s reload, чтобы избежать простоев. Это позволяет безопасно перезагружать конфигурацию без перезапуска всего сервера.
Когда применять
Официальный nginx.org-репозиторий для production-использования всегда предпочтительнее, чем дистрибутивные пакеты, которые могут быть сильно устаревшими. Всегда используйте команду nginx -t для проверки синтаксиса конфигурационного файла перед перезагрузкой, чтобы избежать ошибок, которые могут привести к простоям сервера. Для управления конкретными параметрами сервера используйте файлы конфигурации на уровне сервера, расположенные в /etc/nginx/conf.d/*.conf. Основной конфигурационный файл nginx.conf следует держать как можно более лаконичным, используя директивы include для подключения модульных фрагментов конфигурации.
Для современного оборудования рекомендуется использовать директиву worker_processes auto, которая автоматически определяет количество рабочих процессов, и worker_connections 4096+, чтобы обеспечить максимальную производительность.
Типичные ошибки
Типичные ошибки при работе с nginx.conf включают правку конфигурационного файла без предварительной проверки синтаксиса командой nginx -t. Это может привести к битому конфигурационному файлу, который вызовет простои сервера при попытке перезагрузки. Другая распространенная ошибка — оставленная директива server_tokens on, которая позволяет злоумышленникам определить используемую версию Nginx через заголовок Server:. Также важно удалить дефолтную страницу welcome to nginx, чтобы избежать утечки информации. Ручное управление TLS-сертификатами вместо использования автоматизированных инструментов, таких как certbot или acme.sh, может привести к забыванию обновления сертификатов вовремя. Для просмотра встроенных модулей можно использовать команду nginx -V.