Поиск по сайту:

Как изящно перезапустить nginx (и зачем)


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

Решение состоит в том, чтобы использовать функцию плавного перезапуска, чтобы заставить процесс веб-сервера прочитать новые изменения конфигурации, не отключая сервер. К счастью, это поддерживают nginx, Apache, PHP-FPM и многие другие сервисы.

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

Изящно перезапустите nginx

Есть несколько способов сделать это, в зависимости от того, какую операционную систему вы используете, но один метод, который работает на каждой платформе, — это просто передать сигнал перезагрузки процессу nginx напрямую. Аргумент -s для nginx предназначен для передачи «сигнала», и этот сигнал — «перезагрузка».

nginx -s reload

Это будет работать только в том случае, если каталог nginx sbin находится в вашем пути, поэтому на самом деле вам нужно будет использовать полный путь, например:

/usr/local/nginx/sbin/nginx -s reload

Стоит отметить, что вам, вероятно, следует протестировать конфигурацию nginx, прежде чем передавать команду перезагрузки — вы можете сделать это с помощью «nginx -t».

Вы также можете перезагрузить с помощью сервисной команды в дистрибутивах, которые ее поддерживают (например, Ubuntu или Debian). Итак, команда будет такой:

service nginx reload

Довольно просто.