Добрый день.
Nginx используется в следующей конфигурации: (браузер - interpro client - interpro server - nginx - web server).
Interpro - система электронного документооборота. По сути это два прокси организующих защищенный тунель (на стороне клиента и на стороне сервера).
В таком режиме работы клиентам приходят обрезанные файлы (и html-страницы в том числе).
В режиме (браузер - nginx - web server) такой проблемы нет.
Так же нет проблем в режиме (браузер - interpro client - interpro server - web server).
Симптомы следующие: nginx получает соединение от сервера interpro, соединяется с web-сервером, получает от него файл (параллельно отдавая его клиенту) и после закрытия соединения web-сервером почти тут же рвет соединение со своим клиентом (сервером interpro) отсылкой tcp rst. Соответственно некоторая часть файла не доходит до клиента.
Есть предположение, что сервер interpro выставляет некорректные http-заголовки:
2010/02/01 10:50:55 [debug] 24033#0: *243 http header: "Keep-Alive: 300"
2010/02/01 10:50:55 [debug] 24033#0: *243 http header: "Proxy-Connection: keep-alive"
2010/02/01 10:50:55 [debug] 24033#0: *243 http header: "Connection: close"
Но все равно поведение nginx при этом выглядит странно...
Во вложении:
error.log - debug лог nginx
client.txt - лог tcpdump между сервером interpro и nginx
server.txt - лог tcpdump между nginx и web-сервером
nginx.conf - конфигурация nginx (эта конфигурация результат кучи безуспешных попыток побороть проблему: так что если там уже полный бред - прошу за это сильно не пинать).
Версия nginx
nginx version: nginx/0.8.32
TLS SNI support disabled
configure arguments: --prefix=/opt/nginx --with-http_ssl_module --without-http_geo_module --with-http_gzip_static_module --with-debug
На версии 0.7.63 все тоже самое.
Собственно говоря вопросы в следующем:
1) можно ли конфигурированием исправить подобное поведение?
2) допустим ли такой набор заголовков после interpro сервера или это противоречит стандартам?