- nginx под Windows
- Как запустить, остановить или перезапустить Nginx
- How to Start, Stop, or Restart Nginx
- В этом руководстве мы объясним, как запускать, останавливать и перезапускать Nginx на серверах Linux.
- Прежде чем вы начнете
- Запустите, остановите и перезапустите Nginx, используя systemctl
- Запустите, остановите и перезапустите Nginx, используя SysVinit
- Вывод
- Как запустить, остановить или перезапустить Nginx
- Подготовка
- Запуск, остановка и перезапуск Nginx с помощью systemctl
- Запуск, остановка и перезапуск Nginx с помощью SysVinit
- Выводы
- CommandLine
- Starting, Stopping, and Restarting NGINXВ¶
- Starting NGINXВ¶
- Basic Example of Starting NGINXВ¶
- Advanced Example of Starting NGINXВ¶
- OptionsВ¶
- Stopping or Restarting NGINXВ¶
- Loading a New Configuration Using SignalsВ¶
- Upgrading To a New Binary On The FlyВ¶
- Как перезапустить Nginx
- Как перезапустить Nginx
- Перезапуск Nginx с помощью ISPManager
- Выводы
nginx под Windows
Версия nginx под Windows использует “родной” Win32 API (не эмуляцию Cygwin). В настоящий момент в качестве методов обработки соединений используются select() и poll() (1.15.9), поэтому не стоит ожидать высокой производительности и масштабируемости. В силу этого и ряда других известных проблем версия nginx под Windows рассматривается пока как бета-версия. На данный момент в ней доступна практически вся функциональность, что и в версии nginx под UNIX, за исключением XSLT-фильтра, фильтра изображений, модуля GeoIP и встроенного языка Perl.
Чтобы установить nginx/Windows, скачайте дистрибутив последней основной версии (1.19.10), поскольку основная ветвь nginx содержит все известные исправления. Затем распакуйте дистрибутив, перейдите в каталог nginx-1.19.10 и запустите nginx . Вот пример для корневого каталога на диске C:
Чтобы увидеть процессы nginx, запустите утилиту командной строки tasklist :
Один из процессов главный, другой — рабочий. Если nginx не запускается, нужно искать причину в в файле лога ошибок logs\error.log . Если же лог-файл не создался, то причину этого следует искать в Windows Event Log. Если вместо ожидаемой страницы выводится страница с ошибкой, нужно также искать причины ошибки в файле logs\error.log .
nginx/Windows использует каталог, в котором он был запущен, в качестве префикса для относительных путей в конфигурации. В вышеприведённом примере префиксом является C:\nginx-1.19.10\ . Пути в конфигурационном файле должны задаваться в UNIX-стиле с использованием прямых слэшей:
nginx/Windows работает как стандартное консольное приложение (не сервис) и управляется при помощи следующих команд:
Как запустить, остановить или перезапустить Nginx
How to Start, Stop, or Restart Nginx
В этом руководстве мы объясним, как запускать, останавливать и перезапускать Nginx на серверах Linux.
Nginx — это бесплатный высокопроизводительный HTTP и обратный прокси-сервер с открытым исходным кодом, отвечающий за загрузку некоторых крупнейших сайтов в Интернете. Он может использоваться как автономный веб-сервер и как обратный прокси-сервер для Apache и других веб-серверов.
Если вы разработчик или системный администратор, скорее всего, вы регулярно работаете с Nginx. Запуск, остановка и перезапуск / перезагрузка являются наиболее распространенными задачами при работе с веб-сервером Nginx.
Прежде чем вы начнете
В инструкциях предполагается, что вы вошли в систему как пользователь root или пользователь с привилегиями sudo .
Большинство современных дистрибутивов Linux используют SystemD в качестве системы инициализации по умолчанию и менеджера сервисов. Старые дистрибутивы основаны на SysVinit и используют сценарии инициализации для управления сервисами.
И служебные модули SystemD, и сценарий SysVinit принимают следующие аргументы для управления службой Nginx:
- start — Запускает службу Nginx.
- stop — Завершает службу Nginx.
- restart — Останавливается, а затем запускается служба Nginx.
- reload — авершает работу дочерних процессов, загружает новую конфигурацию и запускает новые дочерние процессы.
- status — показывает статус сервиса.
Команды для управления службой Nginx одинаковы во всех дистрибутивах Linux.
Запустите, остановите и перезапустите Nginx, используя systemctl
Systemd система и сервис менеджер по последней Ubuntu 18.04 / 16.04 , CentOS 7 / 8 , и Debian 10 / 9 — релизов.
Всякий раз, когда вы вносите изменения в конфигурацию Nginx, вам необходимо перезапустить или перезагрузить процессы веб-сервера. Выполните следующую команду, чтобы перезапустить службу Nginx:
При добавлении или редактировании серверных блоков предпочитайте перезагрузку, а не перезапуск. Перезапускайте службу только при внесении значительных изменений, таких как изменение портов или интерфейсов. При перезагрузке Nginx загружает новую конфигурацию, запускает новые рабочие процессы с новой конфигурацией и корректно завершает работу старых рабочих процессов.
Выполните команду ниже, чтобы перезагрузить службу Nginx:
Nginx также может напрямую контролироваться с помощью команд. Например, чтобы перезагрузить сервис, вы можете использовать следующую команду:
Чтобы запустить службу Nginx, выполните следующую команду:
Выполните следующую команду, чтобы остановить службу Nginx:
Запустите, остановите и перезапустите Nginx, используя SysVinit
Старые (EOLed) версии Ubuntu, CentOS и Debian используют сценарии init.d для запуска, остановки и перезапуска демона Nginx.
Перезапустите сервис Nginx:
Запустите сервис Nginx:
Остановите службу Nginx:
Вывод
В этом руководстве мы показали, как запускать, останавливать и перезапускать веб-сервер Nginx в системах Linux.
Как запустить, остановить или перезапустить Nginx
Nginx произносится как «движок x» — это бесплатный высокопроизводительный HTTP-сервер и обратный прокси-сервер с открытым исходным кодом, отвечающий за обработку нагрузки некоторых из крупнейших сайтов в Интернете. Его можно использовать как автономный веб-сервер или как обратный прокси-сервер для Apache и других веб-серверов.
Если вы разработчик или системный администратор, скорее всего, вы имеете дело с Nginx на регулярной основе. Запуск, остановка и перезапуск / перезагрузка — самые распространенные задачи при работе с веб-сервером Nginx.
В этом руководстве объясняется, как запустить, остановить и перезапустить Nginx на серверах Linux.
Подготовка
В инструкциях предполагается, что вы вошли в систему как пользователь root или пользователь с привилегиями sudo .
Большинство текущих дистрибутивов Linux используют SystemD в качестве системы инициализации и диспетчера служб по умолчанию. Старые дистрибутивы основаны на SysVinit и используют сценарии инициализации для управления службами.
И сервисные блоки SystemD, и скрипт SysVinit принимают следующие аргументы для управления сервисом Nginx:
- start : start службу Nginx.
- stop : завершает работу службы Nginx.
- restart : останавливает, а затем запускает службу Nginx.
- reload : плавно перезапускает службу Nginx. При перезагрузке основной процесс Nginx завершает дочерние процессы, загружает новую конфигурацию и запускает новые дочерние процессы.
- status : показывает статус услуги.
Команды для управления службой Nginx одинаковы для всех дистрибутивов Linux.
Запуск, остановка и перезапуск Nginx с помощью systemctl
Systemd система и сервис менеджер по последней Ubuntu 18.04 / 16.04 , CentOS 7 / 8 , и Debian 10 / 9 — релизов.
Всякий раз, когда вы вносите изменения в конфигурацию Nginx, вам необходимо перезапустить или перезагрузить процессы веб-сервера. Выполните следующую команду, чтобы перезапустить службу Nginx:
При добавлении или редактировании серверных блоков предпочитайте перезагрузку перезапуску. Перезапускайте службу только при внесении значительных изменений, таких как изменение портов или интерфейсов. При перезагрузке Nginx загружает новую конфигурацию, запускает новые рабочие процессы с новой конфигурацией и корректно завершает работу старых рабочих процессов.
Выполните команду ниже, чтобы перезагрузить службу Nginx:
Nginx также можно напрямую контролировать с помощью сигналов . Например, чтобы перезагрузить службу, вы можете использовать следующую команду:
Чтобы запустить службу Nginx, выполните:
Выполните следующую команду, чтобы остановить службу Nginx:
Запуск, остановка и перезапуск Nginx с помощью SysVinit
Более старые (EOLed) версии Ubuntu, CentOS и Debian используют сценарии init.d для запуска, остановки и перезапуска демона Nginx.
Перезапустите сервис Nginx:
Запустите сервис Nginx:
Остановите службу Nginx:
Выводы
Мы показали вам, как запускать, останавливать и перезапускать веб-сервер Nginx в системах Linux.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии ниже.
CommandLine
Starting, Stopping, and Restarting NGINXВ¶
This page shows you how to start NGINX, and once it’s running, how to control it so that it will stop or restart.
Starting NGINXВ¶
NGINX is invoked from the command line, usually from /usr/bin/nginx .
Basic Example of Starting NGINXВ¶
Advanced Example of Starting NGINXВ¶
OptionsВ¶
-?, -h | Print help. |
-v | Print version. |
-V | Print NGINX version, compiler version and configure parameters. |
-t | Don’t run, just test the configuration file. NGINX checks configuration for correct syntax and then try to open files referred in configuration. |
-q | Suppress non-error messages during configuration testing. |
-s signal | Send signal to a master process: stop, quit, reopen, reload. (version >= 0.7.53) |
-p prefix | Set prefix path (default: /usr/local/nginx/ ). (version >= 0.7.53) |
-c filename | Specify which configuration file NGINX should use instead of the default. |
-g directives | Set global directives. (version >= 0.7.4) |
NGINX has only a few command-line parameters. Unlike many other software systems, the configuration is done entirely via the configuration file (imagine that).
Stopping or Restarting NGINXВ¶
There are two ways to control NGINX once it’s already running. The first is to call NGINX again with the -s command line parameter. For example, /usr/bin/nginx -s stop will stop the NGINX server. (other -s options are given in the previous section)
The second way to control NGINX is to send a signal to the NGINX master process. By default NGINX writes its master process id to /usr/local/nginx/logs/nginx.pid . You can change this by passing parameter with ./configure at compile-time or by using pid directive in the configuration file.
Here’s how to send the QUIT (Graceful Shutdown) signal to the NGINX master process:
The master process can handle the following signals:
TERM, INT | Quick shutdown |
QUIT | Graceful shutdown |
KILL | Halts a stubborn process |
HUP | |
USR1 | Reopen the log files |
USR2 | Upgrade Executable on the fly |
WINCH | Gracefully shutdown the worker processes |
There’s no need to control the worker processes yourself. However, they support some signals, too:
TERM, INT | Quick shutdown |
QUIT | Graceful shutdown |
USR1 | Reopen the log files |
Loading a New Configuration Using SignalsВ¶
NGINX supports a few signals that you can use to control it’s operation while it’s running.
The most common of these is 15, which just stops the running process:
The more interesting option however, is being able to change the NGINX configuration on the fly (notice that we test the configuration prior to reloading it):
What happens is that when NGINX receives the HUP signal, it tries to parse the configuration file (the specified one, if present, otherwise the default), and if successful, tries to apply a new configuration (i.e. re-open the log files and listen sockets). If successful, NGINX runs new worker processes and signals graceful shutdown to old workers. Notified workers close listen sockets but continue to serve current clients. After serving all clients old workers shutdown. If NGINX couldn’t successfully apply the new configuration, it continues to work with an old configuration.
RequestForReviewCategory – (Request For Review: Just What Happens With The Worker Processes at a HUP? -Olle)
Upgrading To a New Binary On The FlyВ¶
If you need to replace NGINX binary with a new one (when upgrading to a new version or adding/removing server modules), you can do it without any service downtime — no incoming requests will be lost.
First, replace old binary with a new one, then send USR2 signal to the master process. It renames its .pid file to .oldbin (e.g. /usr/local/nginx/logs/nginx.pid.oldbin ), then executes a new binary, which in turn starts a new master process and the new worker processes:
At this point, two instances of NGINX are running, handling the incoming requests together. To phase the old instance out, you have to send WINCH signal to the old master process, and its worker processes will start to gracefully shut down:
After some time, old worker processes all quit and only new worker processes are handling the incoming requests:
At this point you can still revert to the old server because it hasn’t closed its listen sockets yet, by following these steps:
- Send HUP signal to the old master process — it will start the worker processes without reloading a configuration file
- Send QUIT signal to the new master process to gracefully shut down its worker processes
- Send TERM signal to the new master process to force it quit
- If for some reason new worker processes do not quit, send KILL signal to them
After new master process quits, the old master process removes .oldbin suffix from its .pid file, and everything is exactly as before the upgrade attempt.
If an update is successful and you want to keep the new server, send QUIT signal to the old master process to leave only new server running:
Как перезапустить Nginx
Если вы начинающий администратор или только перенесли свой проект на VPS и еще не со всем разобрались, то у вас может возникнуть вопрос как перезапустить Nginx. Это очень популярный веб-сервер, такой же популярный, как и Apache и достаточно часто используется для различных проектов.
Перезапуск веб-сервера может понадобиться после того, как вы изменили его настройки, добавили новый домен и так далее. В этой небольшой статье мы рассмотрим как выполняется перезагрузка Nginx на сервере.
Как перезапустить Nginx
Первое что вам нужно — это получить доступ по ssh к серверу, но если вы уже меняли там какие-либо настройки, то, скорее всего, доступ у вас есть, так что этот момент упустим. Другой момент, это система управления процессами, сейчас большинство, если не все популярные дистрибутивы, используют systemd. Поэтому я буду описывать работу именно с ней. И еще, вам нужен именно VPS, или сервер, на хостинге такое сделать у вас не получится, даже если есть ssh доступ.
Первое что желательно сделать если вы меняли настройки Nginx, и что-то делали с конфигурационными файлами, это проверить их на ошибки с помощью команды:
Если это производственный сервер, то пользователи вообще не должны заметить что был перезапуск Nginx, а если будут проблемы то после установки веб-сервер не запустится и будет лежать пока вы их не решите. Только теперь можно перезапустить Nginx:
systemctl restart nginx
Если нужно только перечитать конфигурационные файлы выполните:
systemctl reload nginx
Есть еще один путь, можно передать команду перезапуска самому сервису nginx с помощью опции -s:
В случае если обычная перезагрузка не помогла, можно попытаться остановить сервис, а затем снова его запустить:
systemctl status nginx
systemctl stop nginx
systemctl start nginx
Перезапуск Nginx с помощью ISPManager
Панель управления VPS ISPManager довольно популярна среди пользователей и если вы используете ее на своем сервере, то можете перезапустить Nginx с помощью нее. Для этого авторизуйтесь в панели, перейдите на вкладку «Система», «Службы», а затем найдите там пункт «Nginx», выделите его и нажмите кнопку «Перезапуск»:
Готово, теперь Nginx перезапущен.
Выводы
В этой небольшой статье мы рассмотрели как перезапустить Nginx на вашем сервере. Если у вас остались вопросы, спрашивайте в комментариях!
Конференция HighLoad в которой рассказывается что нового в Nginx: