Nginx – это высокопроизводительный веб-сервер, обычно используемый для обслуживания веб-сайтов, обратного проксирования и балансировки нагрузки. При обновлении файлов конфигурации или применении исправлений безопасности вам часто потребуется перезагрузить или перезапустить Nginx. В этом руководстве объясняется разница между перезагрузкой и перезапуском, а также то, как безопасно выполнить каждое действие на виртуальном или частном сервере

Перезагрузка и перезапуск – в чем разница?

ДействиеОписание
ПерезагрузкаПерезагружает конфигурацию, не убивая активные соединения. Предпочтительна после внесения изменений в конфигурацию.
ПерезапуститьПолностью останавливает и перезапускает Nginx. Используется для глубоких изменений или полного перезапуска.

Совет: Всегда запускайте тест конфигурации перед перезагрузкой, чтобы избежать простоя из-за ошибок.

Как протестировать конфигурацию Nginx

Перед перезагрузкой или перезапуском проверьте правильность конфигурации:

sudo nginx -t

Если все в порядке, вы увидите:

nginx: синтаксис файла конфигурации /etc/nginx/nginx.conf в порядке  
nginx: проверка конфигурационного файла /etc/nginx/nginx.conf прошла успешно

Как перезагрузить Nginx

Используйте этот способ при изменении настроек в файле /etc/nginx/nginx.conf или при добавлении/редактировании виртуальных хостов.

В системах на базе systemd (Ubuntu 16.04, CentOS 7, Debian 9):

sudo systemctl reload nginx

В старых системах, использующих init.d:

sudo service nginx reload

Это указывает Nginx на необходимость перечитать свой конфиг, не прерывая текущих соединений.

Как перезапустить Nginx

Используйте этот способ, когда Nginx не реагирует на запросы или после крупных обновлений.

В системах с systemd:

sudo systemctl restart nginx

В системах init.d:

sudo service nginx restart

Это останавливает и запускает Nginx, поэтому прерывает все текущие сеансы. Используйте с осторожностью на рабочих серверах.

Необязательно: Перезагрузить бинарник nginx напрямую

Вы также можете отправить сигнал HUP вручную:

sudo kill -HUP $(cat /var/run/nginx.pid)

Это работает так же, как и перезагрузка, и полезно при написании пользовательских сценариев.

Поиск и устранение неисправностей

  • “nginx: [emerg] unknown directive…” – Скорее всего, вы допустили синтаксическую ошибку. Запустите nginx -t для отладки.
  • Nginx не перезапускается должным образом – Проверьте файлы журнала:
sudo tail -n 50 /var/log/nginx/error.log

Заключение

Перезагрузка безопасна для живых серверов и должна быть вашим вариантом по умолчанию после изменения конфигурации. Перезагрузка полезна при полной перезагрузке или если Nginx работает нестабильно. В любом случае всегда тестируйте конфигурацию перед внесением изменений.