ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



Hello!

On Wed, Jun 15, 2011 at 04:20:26PM +0400, sad@xxxxxxxxx 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@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.