Проверка конфигурации и перезапуск Nginx


Перезапустить nginx кожно выполнив nginx -s reload, перед этим нужно тестировать корректность конфигурационных файлов



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



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


Проверить правильность синтаксиса конфигурационных файлов можно выполнив следующую команду

nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful



Результат приведен на скриншоте:

Перезапустить nginx


При положительном результате в выводе будет приведенное выше сообщение или Syntax OK в зависимости от версии пакета. Если найдены ошибки выведутся названия файлов и строки на которых ошибки обнаружены.



Похожим образом тестируется конфигурация Apache (apache2ctl -t)

После тестирования серверу необходимо дать команду на перечитывание конфигурационных файлов (опция -s обозначает signal, серверу можно отправить множество сигналом, но чаще всего это reload, stop и start)


nginx -s reload

Если ошибки все же есть и конфиги предварительно не тестировались nginx -s reload перезапустит nginx только в случае если к остановке веб-сервера это не приведет, т.е. если серьезных ошибок в конфигурации нет



Чтобы выполнить полную перезагрузку необходимо выполнить

/etc/init.d/nginx restart



либо через systemctl, более современный способ управления сервисами


systemctl restart nginx


Конфигурационные файлы при этом не тестируются. Выполнение команды необходимо при внесении каких-либо существенных изменений когда простого reload недостаточно.





Если Nginx по какой-то причине не останавливается (т.е. после выполнения /etc/init.d/nginx stop в выводе ps aux | grep nginx  остаются процессы) процессы требуется завершить вручную, затем запустить Nginx.


Такое бывает если пакет собирался из исходников и для него не написаны инициализационные скрипты.

pkill nginx

/usr/sbin/nginx


Здесь /usr/sbin/nginx это стандартный полный путь к бинарному файлу nginx, бинарный файл может находиться в другом месте. Откуда запущен процесс можно увидеть выполнив ps auxf| grep nginx перед завершением процесса.






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

Сказать спасибо