ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

nginx reload vs nginx restart



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 mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.