как правильно обновлять обработчики (без TERM)?
Igor Sysoev
is at rambler-co.ru
Wed Aug 9 01:32:04 MSD 2006
On Wed, 9 Aug 2006, Kirill V Karatyshov wrote:
> nginx 0.3.49
> Первый вопрос -- есть ли способ перезагрузки обработчиков без жёсткого
> рестарта? Насколько я понял, по -HUP обработчики перезагружаются только если
> их переименовать (и изменить имена в конфиге), а TERM не всегда можно
> сказать (в каждый момент с сервера неск. сот человек чего-нибудь качают).
Что показывают "perl -V:usethreads" и "perl -V:usemultiplicity" ?
Похоже, повторный require не перекомпилирует перловые функции.
Можно попробвать два способа:
1) online upgrade: http://sysoev.ru/nginx/docs/control.html#upgrade
2) собрать perl c
-Dusethreads или -Dusemultiplicity
При использовани этих параметров во время переконфигурации создаётся
новый перловый интерпертатор, в контексте которого выполняется require.
Без них всегда используется только один интерпертатор.
Но хочу предупредить, что ВСЕ перловые модули с бинарыми .so придётся
переустанавливать.
> Второе... захотелось написать небольшой обработчик для парсинга ссылок в
> shtml-файлах. Сами файлы выглядят примерно так:
>
> <!--#include virtual="/ssi/head.shtml"-->
> <!--#include virtual="./article.txt"-->
> <!--#include virtual="/ssi/foot.shtml"-->
А зачем ? Это же умеет делать
http://sysoev.ru/nginx/docs/http/ngx_http_ssi_module.html
и перл он умеет вызывать:
<!--# perl sub="модуль::функция" arg="параметр1" arg="параметр2" ... -->
> Собсно, написать написали, но вот прикрутить не смогли:
>
> perl_require /opt/home/shtmlparser.pm;
>
> location ~* \.shtml$ {
> perl shtmlparser::handler;
> }
>
>
> в итоге такого, shtml файлы начали отдаваться без обрабтки ssi-команд (т.е.
> в виде, приведённом выше), т.е. видимо произошёл какой-то внутренний
> конфликт. Но самое интересное, что закомментировав эти строки и перезагрузив
> сервер по -HUP, обработчик заработал! Обнаружилось это случайно какое-то
> время спустя, и повторить не удалось, но то, что ссылки подсвечивались до
> след. перезагрузки -- это совершенно точно. В общем, как добиться
> адекватного поведения в данном случае?
"ssi on" случаем не использовался ?
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list