Как проверить 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, нужно использовать опцию -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 должен использовать вместо используемого по-умолчанию.

Перезапустить 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 произносится как «движок 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 .

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

После установка NGINX на Ubuntu Linux, либо как веб-сервер, либо обратный прокси-сервер, вам нужно будет изучить основы администрирования службы.

В этом руководстве мы покажем, как проверить статус NGINX в Ubuntu. Это предоставит вам информацию о состоянии службы NGINX, которая поможет вам определить, работает ли она, успешно ли принимает соединения и т. Д. Мы также объясним различные состояния NGINX, чтобы вы знали, что делать с представленной информацией.

В этом уроке вы узнаете:

  • Как проверить статус NGINX с помощью systemd
  • Как настроить и получить доступ к странице статуса NGINX
  • Как проверить конфигурацию NGINX, перезапустить и перезагрузить службу

Проверка статуса NGINX в Ubuntu

Проверка статуса NGINX в Ubuntu

Требования к программному обеспечению и условные обозначения командной строки Linux

Категория Требования, условные обозначения или используемая версия программного обеспечения
Система Ubuntu Linux
Программного обеспечения NGINX
Другой Привилегированный доступ к вашей системе Linux с правами root или через судо команда.
Условные обозначения # — требует данных команды linux для выполнения с привилегиями root либо непосредственно как пользователь root, либо с использованием судо команда
$ — требует данных команды linux для выполнения от имени обычного непривилегированного пользователя.

Проверка статуса NGINX с помощью systemd



Мы можем увидеть, работает ли NGINX в настоящее время, используя следующие systemctl команда.

$ systemctl status nginx. 

Есть несколько возможных результатов, которые вы можете увидеть при запуске этой команды. Если служба работает без проблем, она скажет «активен (работает)», как показано на скриншоте ниже.

NGINX активен и работает

NGINX активен и работает

Если NGINX не запущен и в последний раз был корректно завершен, вы увидите статус «неактивен (мертв)».

NGINX в настоящее время неактивен

NGINX в настоящее время неактивен



Если в NGINX произошел сбой или произошел сбой, в статусе может быть указано «сбой» с указанием причины сбоя. На скриншоте ниже сервис аварийно завершил работу в результате запуска команда kill, который нам указывает systemd.

Состояние NGINX не удалось из-за полученного сигнала

Состояние NGINX не удалось из-за полученного сигнала

В случае неправильно сконфигурированного файла NGINX состояние NGINX может указывать на то, что он вообще не мог запуститься.

NGINX указывает, что не удалось запустить из-за неверно настроенного файла конфигурации.

NGINX указывает, что не удалось запустить из-за неверно настроенного файла конфигурации.

Проверка статуса NGINX на странице статуса



Настройка страницы статуса NGINX может предоставить вам много информации об активных соединениях и другой статистике сервера.

Отредактируйте файл конфигурации вашего сайта NGINX и добавьте следующий блок кода в сервер директива.

местоположение / nginx_status {stub_status on; разрешить 127.0.0.1; все отрицать; }

Настройка страницы статуса NGINX

Настройка страницы статуса NGINX

Это позволит localhost (127.0.0.1) получить доступ к странице example.com/nginx_status чтобы увидеть страницу статуса NGINX.

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

Активных подключений: 16. сервер принимает обработанные запросы 417 417 610 Чтение: 0 Запись: 3 Ожидание: 5. 

Вот подробное описание того, как интерпретировать данные:

  • Активные связи: Общее количество открытых и активных подключений к NGINX.
  • Три числа в третьей строке:
    1. Количество принятые соединения
    2. Количество обработанные соединения (обычно то же самое, что и принятые соединения)
    3. Общее количество клиентских запросов
  • Чтение: Количество текущих подключений, в которых NGINX читает заголовок запроса.
  • Пишу: Количество текущих подключений, в которых NGINX пишет ответ клиенту.
  • Ожидающий:: Количество открытых соединений, которые неактивны и ждут запросов.


Доступ к странице статуса NGINX

Доступ к странице статуса NGINX

Проверьте конфигурацию NGINX, перезапустите и перезагрузите NGINX.

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

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

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

И ознакомьтесь с нашим руководством по как перезапустить или перезагрузить NGINX. для объяснения различий.

$ sudo systemctl перезапустить nginx. И. $ sudo systemctl перезагрузить nginx. 

Заключительные мысли

В этом руководстве мы увидели, как проверить статус NGINX в Ubuntu Linux. Это включало проверку службы с помощью systemctl, а также настройку и проверку страницы статуса NGINX. Мы также узнали, как проверить нашу конфигурацию NGINX на наличие ошибок и перезапустить или перезагрузить службу. Вся эта информация важна для веб-администраторов и должна помочь вам следить за состоянием вашего веб-сайта или обратного прокси-сервера.

Подпишитесь на новостную рассылку Linux Career Newsletter, чтобы получать последние новости, вакансии, советы по карьере и рекомендуемые руководства по настройке.

LinuxConfig ищет технических писателей, специализирующихся на технологиях GNU / Linux и FLOSS. В ваших статьях будут представлены различные руководства по настройке GNU / Linux и технологии FLOSS, используемые в сочетании с операционной системой GNU / Linux.

Ожидается, что при написании статей вы сможете идти в ногу с технологическим прогрессом в вышеупомянутой технической области. Вы будете работать самостоятельно и сможете выпускать как минимум 2 технических статьи в месяц.

Понравилась статья? Поделить с друзьями:
  • Как проверить net framework на ошибки
  • Как проверить mp3 файлы на ошибки
  • Как проверить mkv на ошибки
  • Как проверить microsoft office на ошибки
  • Как проверить mercedes на ошибки