reload и restart

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

Nginx предоставляет два различных механизма применения изменений конфигурации: плавную перезагрузку и полный перезапуск; правильный выбор между ними критически важен для поддержания доступности веб-сервера в продакшен-среде. Команда nginx -s reload отправляет сигнал HUP главному процессу Nginx, который повторно читает nginx.conf, проверяет новую конфигурацию, запускает новые рабочие процессы с обновлёнными настройками и плавно завершает старые воркеры — всё это без разрыва ни одного активного соединения. Полный перезапуск через systemctl restart nginx останавливает и перезапускает весь процесс Nginx, кратковременно прерывая все соединения, и должен использоваться только в ситуациях, когда необходимо загрузить новый бинарный файл или когда изменения модулей требуют создания нового дерева процессов. Перед любой из этих операций всегда проверяйте конфигурацию командой nginx -t, которая разбирает /etc/nginx/nginx.conf и все подключаемые файлы и сообщает о синтаксических ошибках, не затрагивая работающий сервер. Понимание различий между nginx -s reload и nginx -s stop (плавная остановка) в сравнении с nginx -s quit (немедленная остановка) — фундаментальные операционные знания для любого, кто управляет Nginx как продакшен-обратным прокси или балансировщиком нагрузки.

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

reload и restart через 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+ для современного железа.

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

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

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

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