1.0.4 неприятности с keepalive_timeout
sad на bankir.ru
sad на bankir.ru
Ср Июн 15 16:20:26 MSD 2011
саму неприятность описать сложно, она очень загадочно выглядит.
скажем первый симптом: "если тупо жать кнопку 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...
приаттачиваю два debug лога
1.log -- безпроблемный запрос
3.log -- проблемный запрос
я не очень крут в толковании nginx логов. поэтому не буду вводить вас в заблуждение.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 1.log
Type: application/octet-stream
Size: 8874 bytes
Desc: not available
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20110615/3edac25e/attachment-0003.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 3.log
Type: application/octet-stream
Size: 8752 bytes
Desc: not available
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20110615/3edac25e/attachment-0004.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: nginx.conf
Type: application/octet-stream
Size: 1147 bytes
Desc: not available
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20110615/3edac25e/attachment-0005.obj>
Подробная информация о списке рассылки nginx-ru