Есть сервер приложений, который игнорирует заголовки Connection: close; и версию запроса (1.0 или 1.1): независимо ни от чего, сервер держит соединение с клиентом открытым.<br>Есть нгинкс, который проксирует соединение до этого сервера.<br>
Проблема:<br>Нгинкс проксирует запрос от клиента к серверу приложений, получает ответ с заголовком Content-Length и далее нужное количество байт в теле ответа. <br>Если буферизация ответов апстрима включена (proxy_buffering on;), то нгинкс отдаёт клиенту заголовки ответа, без тела (но с content-length), а в лог пишет, что <br>
<div style="margin-left: 40px;"><i>upstream timed out (110: Connection timed out) while reading upstream</i><br></div>Если буферизация ответов апстрима выключена (proxy_buffering off;), то ответ нормально отдаётся клиенту. Но при этом ломается кэширование (кэширование не работает без буферизации).<br>
<br>Мне удалось найти аналогичную проблему у другого человека: <a href="http://www.ruby-forum.com/topic/166377">http://www.ruby-forum.com/topic/166377</a> . Более того, по ссылке в беседе участвует и некий Денис Латыпов, который даже предлагает патч. <br>
<br>Вопросы: патч предложенный Денисом не принят в нгинкс? Патч не имеет отношения к моей проблеме? Что мне можно сделать, кроме изменений в сервер приложений?<br><br>P.S.<br>Я прекрасно понимаю, что с http-несовместимым сервером нгинкс работать и не должен, но почему тогда при отключении буферизации ответа всё работает хорошо?<br clear="all">
<br>С уважением,<br>Ипполитов Игорь.<br>