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
Результат приведен на скриншоте:
При положительном результате в выводе будет приведенное выше сообщение или 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 должен использовать вместо используемого по-умолчанию.
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 nginx
sudo service stop nginx
Перезапуск Nginx
Параметр перезапуска — это быстрый способ остановить, а затем запустить сервер Nginx.
Используйте одну из следующих команд для перезапуска Nginx :
sudo systemctl restart nginx
sudo service restart nginx
Это команда, которую вы, вероятно, будете использовать наиболее часто.
Перезагрузка Nginx
Вам необходимо перезагрузить или перезапустить Nginx всякий раз, когда вы вносите изменения в его конфигурацию.
Команда reload загружает новую конфигурацию, запускает новые рабочие процессы с новой конфигурацией и корректно завершает работу старых рабочих процессов.
Чтобы перезагрузить Nginx, используйте одну из следующих команд:
sudo systemctl reload nginx
sudo 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 .
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
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.