On Fri, Aug 31, 2007 at 05:16:18PM +0300, Igor Savchenko wrote:
> 1. Если внутри перлового обработчика пусто, к примеру:
>
> package MyPerlHandler;
>
> use nginx;
>
> sub handler
> {
> my $r = shift;
>
>
> }
>
> 1;
> __END__
>
> Тогда при запросе на локатион который обрабатывается таким
> обработчиком nginx думает секунд 5 и ничего не возвращает точнее
> получается ответ с кодом 0 и пустым телом (без хедеров) и при этом в
> error.log ничего не кладется.
> Вопрос: Может это как-нибудь хендлить и писать в эрор лог хоть
> что-нибудь?
>
>
>
> 2. Если внутри обработчика написать $r->print("123"); return OK;
> Без $r->send_http_header, то данные клиенту передаются, но
> появляется опять же секунд на 5 задержка. Откуда она берется? а
> также информация о том что клиенту отдался контент без хедеров в
> лог тоже не кладется. Может что-то писать следует? Или принудительно
> слать хедеры?
Задержка, скорее всего, берётся из "keepalive_timeout 5".
В первом случае действительно вообще ничего не передаётся.
Во втором только "123". На мой взгляд, это удобно для написания
серверов, работающих по псевдо-HTTP.
Ксати, а как в подобных случаях ведёт себя Апачевский mod_perl ?
У меня есть подозрение, что так же.
--
Игорь Сысоев
http://sysoev.ru