CH-J Server Managerуправление серверами через SSH
Меню
Все руководства и статьи →

Управление NGINX без простоя сайта

Сохраните резервную копию конфигурации, проверьте её командой nginx -t, примените без разрыва соединений и откатите изменения при сбое.

Перечитывание конфигурации вместо перезапуска

При перечитывании 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.

Подробная документация

NGINX: Controlling nginx →

NGINX: Beginner's Guide →

Биометрическое разблокирование и безопасность →