nginx reload vs nginx restart

Gena Makhomed gmm на csdoc.com
Сб Июл 9 15:20:00 UTC 2011


On 09.07.2011 16:59, vagner wrote:

> подскажите пожалуйста, в каких случаях
> необходимо делать рестарт (нашел
> только что в случае изменения сокета)

возможно я ошибаюсь, но по моему мнению лучше
service nginx restart вообще никогда не делать.

потому что в этом случае происходит прерывание сервиса,
и клиенты увидят в браузере сообщение про ошибку подключения.
почему такая функция есть в инит-скрипте? для совместимости с LSB.

если будет не достаточно service nginx reload
тогда в nginx есть функция service nginx force-reload
которая применяется в том числе и для обновления бинарника "на лету",
при установке более новой версии nginx через команду yum update nginx

есть только один нюанс - команды service nginx reload
и service nginx force-reload нельзя выполнять очень часто,
особенно если есть запросы от клиентов которые долго обслуживаются.
например, отдача статического файла размером несколько гигабайт и т.п.

потому что обе эти функции, reload и force-reload запускают новые
worker-процессы с новой конфигурацией, а старые - "плавно" завершаются.
и при слишком большой частоте reload / force-reload - в системе будет
появляться большое количество worker-процессов и может закончиться RAM.

документация nginx на эту тему: http://sysoev.ru/nginx/docs/control.html

каким образом может быть реализована функция force-reload:

============================================================

instance=nginx

upgrade() {
     configtest_q || return 6
     echo -n $"Upgrading $instance: "
     kill -USR2 `cat /var/run/$instance.pid`
     sleep 1
     if test -f /var/run/$instance.pid.oldbin
     then
         kill -QUIT `cat /var/run/$instance.pid.oldbin`
         success $"$instance online upgrade"
         echo
     else
         failure $"$instance online upgrade"
         echo
         exit 1
     fi
}

============================================================

-- 
Best regards,
  Gena




Подробная информация о списке рассылки nginx-ru