при специфично сформированном заголовке, nginx тормозит и рушит http демон на perl

Igor Sysoev is at rambler-co.ru
Wed Jul 2 12:11:22 MSD 2008


On Wed, Jul 02, 2008 at 11:39:21AM +0400, nobody wrote:

> У меня очередная проблемма с задержкой ответа от сервера, теперь еще
> и демон, на который nginx проксирует запросы потихому падает.
> Суть проблеммы такая:
> Есть скрипт, который обращается к некому адресу и в POST вливает
> некоторые данные. По адресу, к которому подключается скрипт, находится
> nginx, который проксирует запросы далее на perl http демон.
> Если в скрипте, который обращает, не правильно сформировать заголовки,
> то демон падает, а nginx отдает 504 ошибку.
> При детальном просмотре логов nginx'а и дебаге скриптов выяснилось что
> запрос приходит на nginx, nginx делает попытку подключится к демону (и
> видимо подключается судя по tcpdump'у) и после этого залипает.
> Я повставлял print'ов в файл модуля perl http демона, и судя по этим
> принтам, само подключение на сокет происходит в тот момент когда nginx
> уже спешит отдать 504, а демон, использующий модуль умереть.
> Короче темный лес.. непонятно, толи это бага в реализации сокетов на
> перле, толи nginx по хитрому себя ведет в этой ситуации..
> 
> Вобщем прошу вашей помощи :)
> 
> Логи nginx'а и tcpdump'а в атачах.
> 
> Вот таким образом происходит обращение из скрипта - это то что я
> называю "неправильно сформированным заголовком":
> 
> my $client = LWP::UserAgent->new;
> $res = $client->post("https://tcmf-test.yandex.net/test",
>         'Content_Type' => 'multipart/form-data',
>                         {'__data'       => $json_req});
> 
> 
> Модуль http сервера это HTTP::Server::Simple

Возможно, дело в сочетании

Content-Length: 0
Content-Type: multipart/form-data


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list