restart nginx
Алексей Масленников
minisotm на gmail.com
Ср Авг 3 10:37:45 UTC 2011
Огромное спасибо. теперь понимание настало!
А можно сюда же вопрос не по теме ?
Почему не работают эти локейшины:
server{
....
location / {
try_files $uri $uri/ /index.php;
}
location /32x45/ {
proxy_pass http://proxy/img/;
image_filter resize 32 45;
}
....
location ~ \.php$ {
proxy_set_header Host $host;
proxy_pass http://127.0.0.1;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
_______________________________
С Уважением, Алексей Масленников
Jabber: minisotm на jabber.ru
3 августа 2011 г. 14:07 пользователь Gena Makhomed <gmm на csdoc.com> написал:
> On 03.08.2011 12:27, Алексей Масленников wrote:
>
> на системе CentOS release 5.3 (Final)
>>
>
> где Вы взяли такой древний и глючный инит-скрипт?
>
>
> Запускается раза с 5-го
>>
>
> т.е. нормально не работает service nginx start ?
>
>
> > restart пишет что все ОК, но не работает .
>
> или проблемы только с service nginx restart ?
>
> что при этом пишется на stderr и в error.log ?
>
>
> make_dirs() {
>> # make required directories
>> user=`nginx -V 2>&1 | grep "configure arguments:" | sed
>> 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
>> options=`$nginx -V 2>&1 | grep 'configure arguments:'`
>> for opt in $options; do
>> if [ `echo $opt | grep '.*-temp-path'` ]; then
>> value=`echo $opt | cut -d "=" -f 2`
>> if [ ! -d "$value" ]; then
>> # echo "creating" $value
>> mkdir -p $value && chown -R $user $value
>> fi
>> fi
>> done
>> }
>>
>
> возможно имеет смысл эту функциональность перенести
> внутрь /usr/sbin/nginx, чтобы он сам создавал каталоги.
> потому что через shell-скрипт получается не очень красиво...
>
>
> stop() {
>> echo -n $"Stopping $prog: "
>> killproc $prog -QUIT
>> retval=$?
>> echo
>> [ $retval -eq 0 ] && rm -f $lockfile
>> return $retval
>> }
>>
>
> причина глюков с restart - именно в этом,
> старому экземпляру nginx посылают сигнал -QUIT
> - это команда на "плавное завершение" и после
> этого - сразу же запускают новый экземпляр.
>
> если убрать -QUIT - то service nginx stop будет завершать
> его работу гораздо быстрее, сразу обрывая все соединения.
>
>
> restart() {
>> configtest || return $?
>> stop
>> sleep 1
>> start
>> }
>>
>
> sleep 1 - это не очень хороший workaround для вручную созданного
> глюка, старый экземпляр nginx может и не успеть выйти за 1 секунду.
>
> кроме того - нет никакого смысла использовать restart, когда
> в nginx есть http://sysoev.ru/nginx/docs/**control.html#upgrade<http://sysoev.ru/nginx/docs/control.html#upgrade>
> да и большинство изменений в конфигурации применяются
> с помощью команды service nginx reload
>
> force_reload() {
>> restart
>> }
>>
>
> очень старый инит-скрипт, эти ошибки были исправлены
> в нем еще несколько лет тому назад. по крайней мере,
> в init-скрипте из EPEL этих ошибок уже давно нет.
>
> Как это отдебажить ? Спасибо.
>>
>
> см. в аттаче мой вариант инит-скрипта.
>
> после изменения настроек лучше делать service nginx reload
> а после обновления бинарника или чтобы на 100% быть уверенным,
> что все изменения применились - service nginx force-reload
>
> service nginx restart не имеет смысла вообще использовать.
> разве что только в том случае когда nginx так зависнет,
> что никак нельзя будет завершить, а только через kill -9
> ( но лучше будет причину этой ошибки найти и устранить )
>
> там я еще сделал некоторую часть работы для того, чтобы
> можно было запускать одновременно несколько независимых
> экземпляров nginx на одном сервере, просто копируя
> инит-скрипт, например, в nginx-frontend, nginx-static, и т.п.
> меняя переменную pidfile и значение переменной instance -
> но пока что полностью это сделать не удалось - в nginx
> жестко вкомпилировано имя error.log файла и поэтому
> разные экземпляры nginx будут писать ошибки в один
> и тот же лог-файл, что не очень удобно и трудно
> потом будет понять, что к чему относится.
>
> на FreeBSD насколько я знаю, nginx "из коробки"
> поддерживает такой режим работы, что можно запускать
> несколько полностью независимых друг от друга экземпляров,
> но на Linux - такую функциональность сейчас сделать нельзя,
> не компилируя его много раз с различными параметрами configure.
>
> --
> Best regards,
> Gena
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20110803/fe1628d6/attachment-0001.html>
Подробная информация о списке рассылки nginx-ru