Re: Re: 1.0.4 неприятности с keepalive_timeout

sad на bankir.ru sad на bankir.ru
Чт Июн 16 12:05:22 MSD 2011


большое спасибо!
пойду изучать проблему дальше

Maxim Dounin  wrote:
>                 Hello!
> 
> On Wed, Jun 15, 2011 at 04:20:26PM +0400, sad at bankir.ru wrote:
> 
> > саму неприятность описать сложно, она очень загадочно выглядит.
> > скажем первый симптом: "если тупо жать кнопку reload в браузере то на каждый второй запрос nginx не отвечает"
> > 
> > оказывается что фигня происходит ЕСЛИ запрос отправить до истечения keepalive-timeout.
> > после истечения всё раб как надо.
> > 
> > проблема полностью лечится keepalive-timeout 0;
> > 
> > в ответ на "проблемный" запрос nginx молчит ровно keepalive-timeout времени.
> > а затем выплёвывает нечто вроде:
> > 
> > 0
> > 
> > HTTP/1.1 200 OK
> > Server: nginx/1.0.4
> > Date: Wed, 15 Jun 2011 12:05:54 GMT
> > Content-Type: text/plain; charset=utf-8
> > Transfer-Encoding: chunked
> > Connection: keep-alive
> > 
> > 22
> > exactly-the-expected-body
> > 0
> > 
> > 0
> > 
> > тоесть заголовки прямо в теле и тело очень смахивает на chunked.
> > 
> > проблему я встретил при изпользовании модуля ngx_postgres,
> > а при отдаче статики проблему возпроизвести не удалось.
> > тем не менее я думаю что эта проблема не специфична для postgres module
> > может быть её можно воспроизвести с другими upstream...
> 
> Судя по всему, проблема именно в ngx_postgres: он видимо ставит на 
> буфер флаг last_buf, а не должен.  Это приводит к двум final 
> chunk'ам (см. выше - CRLF "0" CRLF CRLF), что ломает протокол и 
> соответственно keepalive не может нормально работать.
> 
> Maxim Dounin
> 
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>                 



Подробная информация о списке рассылки nginx-ru