Перечитывание конфигурации вместо перезапуска
При перечитывании NGINX заново читает конфигурацию. Он запускает новые рабочие процессы и позволяет старым завершить открытые запросы, поэтому посетители обычно ничего не замечают. Если новую конфигурацию применить не удаётся, NGINX продолжает работать со старой. При перезапуске служба сначала останавливается, что разрывает соединения, а при ошибке в конфигурации она может не запуститься снова.
Сохраните копию изменяемого файла
Перед редактированием создайте рядом с файлом копию с датой в имени. Не оставляйте копии в каталоге, который NGINX загружает по шаблону, например conf.d/*.conf или sites-enabled/*: иначе он загрузит и их. На Debian и Ubuntu редактируйте файл в sites-available; запись в sites-enabled обычно является лишь ссылкой на него.
sudo cp -a /etc/nginx/sites-available/example.conf /root/example.conf.$(date +%Y%m%d-%H%M%S)Сначала проверка, затем перечитывание
nginx -t проверяет синтаксис и файлы, на которые ссылается конфигурация, например сертификаты. Используйте nginx -T, чтобы увидеть полную конфигурацию с учётом включённых файлов. Выполняйте перечитывание только после успешной проверки; соединение команд через && обеспечивает это автоматически. Проверка не определяет, делает ли конфигурация то, что вы задумали, поэтому после этого откройте сайт.
sudo nginx -t && sudo systemctl reload nginx
sudo nginx -T | less
curl -I https://example.com/Если что-то пошло не так
Восстановите резервную копию, снова выполните проверку и перечитайте конфигурацию. Если служба остановилась, журнал ошибок и системный журнал подскажут причину. Ищите сообщения об уже занятом порте, отсутствующем сертификате или повторяющемся имени сервера.
sudo cp -a /root/example.conf.20261031-120000 /etc/nginx/sites-available/example.conf
sudo nginx -t && sudo systemctl reload nginx
sudo journalctl -u nginx -n 50 --no-pager
sudo tail -n 50 /var/log/nginx/error.logЧто не решает перечитывание конфигурации
Долгоживущие соединения, например WebSockets, остаются у старых рабочих процессов до завершения, поэтому старые процессы могут ещё некоторое время работать и занимать дополнительную память. Обновление пакета может само перезапустить службу. Крупные изменения сначала проверяйте на тестовом сервере, включая сертификаты и перенаправления.
NGINX Manager в CH-J Server Manager
NGINX Manager редактирует конфигурационные файлы в управляемых каталогах NGINX на серверах Linux, до 512 KiB на файл. При сохранении приложение создаёт резервную копию с суффиксом .chj-backup-, запускает nginx -t и оставляет изменение только после успешной проверки. Перечитывание требует вашего явного подтверждения и перед началом повторяет проверку. Символическая ссылка в sites-enabled не заменяется; редактируйте соответствующий файл в sites-available.