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