"client prematurely closed connection" между двумя nginx

Trurl nginx-forum на forum.nginx.org
Вс Окт 2 01:59:51 UTC 2016


У меня есть несколько "уровней" nginx, один из серверов занимается отдачей
статики непосредственно с файлера.
При отдаче больших галерей часть фалов (совершенно рандомно) не может отдать
нижестоящему nginx.
В error.log файлера ошибки типа 

client prematurely closed connection (104: Connection reset by peer) while
sending response to client
или 
client prematurely closed connection while sending response to client

На промежуточном nginx ошибок вообще нет, он уверен что ему отдали весь
файл, хотя получил только кусочек.

Размер кусочка всегда 17376 байт (не зависимо от размера оригинального
файла).

Кроме того промежуточный nginx отдает не напрямую, а через внутренние
редиректы и image_filter, потому подробно отследить путь не удаётся. Если
миновать image_filter - то такой ошибки нет. От конкретного типа
image_filter это не зависит, ошибка может случиться на любом. 

Если брать одну конкретную картинку - вероятность ошибки минимальная
(особенно если запрос делаю я, а не кто-то другой). Только если их хоть пару
десятков одновременно, тогда 10-90% (зависит от кармы юзера) картинок
(мелкие превью) будут битые.

Повторю: проблема только в сочетании image_filter с proxy_pass, в остальных
случаях оной нет.
Nginx на файлер не нагружен (там только статика, и то, не больше пары тысяч
картинок в минуту). Nginx на промежуточных серверах нагружен, но не слишком
(в том числе io).

Есть идеи куда копать?

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,270013,270013#msg-270013



Подробная информация о списке рассылки nginx-ru