Проверить nginx на ошибки

nginx поддерживает следующие параметры командной строки:

  • -? | -h — вывод справки
    по параметрам командной строки.
  • -c файл — использование альтернативного
    конфигурационного файла файл вместо файла по умолчанию.
  • -e файл — использование альтернативного
    лог-файла ошибок файл
    вместо файла по умолчанию (1.19.5).
    Специальное значение stderr выбирает стандартный файл ошибок.
  • -g директивы — задание
    глобальных директив конфигурации,
    например

    nginx -g "pid /var/run/nginx.pid; worker_processes `sysctl -n hw.ncpu`;"
    
  • -p префикс — задание префикса пути nginx,
    т.е. каталога, в котором будут находиться файлы сервера
    (по умолчанию — каталог /usr/local/nginx).
  • -q — вывод только сообщений об ошибках
    при тестировании конфигурации.
  • -s сигнал — отправка сигнала
    главному процессу.
    Аргументом сигнал может быть:

    • stop — быстрое завершение
    • quit — плавное завершение
    • reload — перезагрузка конфигурации,
      старт нового рабочего процесса с новой конфигурацией,
      плавное завершение старых рабочих процессов.
    • reopen — переоткрытие лог-файлов
  • -t — тестирование конфигурационного файла:
    nginx проверяет
    синтаксическую правильность конфигурации, а затем пытается открыть файлы,
    описанные в конфигурации.
  • -T — то же, что и -t,
    а также вывод конфигурационных файлов
    в стандартный поток вывода (1.9.2).
  • -v — вывод версии nginx.
  • -V — вывод версии nginx, версии компилятора
    и параметров конфигурации сборки.

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

Перед перезапуском веб-сервера 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 конфигурируют специальным образом, что дает максимальную производительность. Для небольших проектов выполнить такие настройки тоже  может оказаться полезно.

Перейти к содержимому

Перезапуск веб-сервера с нерабочей конфигурацией может привести к его остановке.

Чтобы проверить на ошибки конфиг nginx, нужно использовать опцию -t.

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

Для проверки конфига nginx на ошибки, используйте команду:

# nginx -c /usr/local/etc/nginx/nginx.conf -t

Пример вывода при запуске nginx с опцией -t:

?2008/10/09 19:24:26 [info] 52494#0: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok2008/10/09 19:24:26 [info] 52494#0: the configuration file /usr/local/etc/nginx/nginx.conf was tested successfully

Опция -c /path/to/config/file указывает, какой конфигурационный файл nginx должен использовать вместо используемого по-умолчанию.

Test your NGINX configuration for validity and potential security issues.

Please paste in the complete NGINX configuration. You can obtain it by running nginx -T on the command line. Make sure to copy-paste the complete output.

Nginx произносится как «движок x» — это бесплатный высокопроизводительный HTTP-сервер и обратный прокси-сервер с открытым исходным кодом, отвечающий за обработку нагрузки некоторых из крупнейших сайтов в Интернете. Его можно использовать как автономный веб-сервер и как обратный прокси-сервер для Apache и других веб-серверов.

Если вы разработчик или системный администратор, скорее всего, вы имеете дело с Nginx на регулярной основе.

В этом руководстве мы рассмотрим наиболее важные и часто используемые команды Nginx, включая запуск, остановку и перезапуск Nginx.

Подготовка

Мы предполагаем, что вы вошли в систему как root или пользователь с привилегиями sudo. Команды в этом g должны работать в любом современном дистрибутиве Linux, таком как Ubuntu 18.04, CentOS 8 и Debian 10 .

Запуск Nginx

Запустить Nginx довольно просто. Просто запустите следующую команду:

sudo systemctl start nginx

В случае успеха команда не производит никакого вывода.

Если вы используете дистрибутив Linux без systemd, для запуска Nginx введите:

sudo service start nginx

Вместо того, чтобы вручную запускать службу Nginx, рекомендуется настроить ее запуск при загрузке системы:

sudo systemctl enable nginx

Остановка Nginx

Остановка Nginx быстро завершает все рабочие процессы Nginx, даже если есть открытые соединения.

Чтобы остановить Nginx, выполните одну из следующих команд:

sudo systemctl stop nginxsudo service stop nginx

Перезапуск Nginx

Параметр перезапуска — это быстрый способ остановить, а затем запустить сервер Nginx.

Используйте одну из следующих команд для перезапуска Nginx :

sudo systemctl restart nginxsudo service restart nginx

Это команда, которую вы, вероятно, будете использовать наиболее часто.

Перезагрузка Nginx

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

Команда reload загружает новую конфигурацию, запускает новые рабочие процессы с новой конфигурацией и корректно завершает работу старых рабочих процессов.

Чтобы перезагрузить Nginx, используйте одну из следующих команд:

sudo systemctl reload nginxsudo service reload nginx

Тестирование конфигурации Nginx

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

Используйте следующую команду, чтобы проверить конфигурацию Nginx на наличие синтаксических или системных ошибок:

sudo nginx -t

Результат будет выглядеть следующим образом:

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

Если есть ошибки, команда выводит подробное сообщение.

Просмотр статуса Nginx

Чтобы проверить статус службы Nginx, используйте следующую команду:

sudo systemctl status nginx

Результат будет выглядеть примерно так:

 nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-04-21 13:57:01 PDT; 5min ago
     Docs: man:nginx(8)
  Process: 4491 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
  Process: 4502 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 4492 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 4504 (nginx)
    Tasks: 3 (limit: 2319)
   CGroup: /system.slice/nginx.service
           |-4504 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           |-4516 nginx: worker process
           `-4517 nginx: worker process

Проверка версии Nginx

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

Вы можете проверить свою версию Nginx, запустив:

sudo nginx -v
nginx version: nginx/1.14.0 (Ubuntu)

Параметр -V отображает версию Nginx вместе с параметром настройки.

sudo nginx -V

Выводы

В этом руководстве мы показали вам некоторые из наиболее важных команд Nginx. Если вы хотите узнать больше о параметрах командной строки Nginx, посетите документацию Nginx .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

  • Проверить hdd диск на наличие ошибок
  • Проверить esc рено флюенс ошибка
  • Проверить docx на ошибки
  • Проверить cron на ошибки
  • Проверим хорошо ли вы знаете мировые столицы найдите ошибку