uWSGI прерывает ответы, теряет соединение с nginx

uWSGI прерывает ответы, теряет соединение с nginx

Я запускаю небольшое веб-приложение, написанное на Python, работающее в uWSGI и обслуживаемое через nginx. Есть компонент, который генерирует ZIP-файлы для загрузки, которые иногда могут быть довольно большими (несколько ГБ). Часто случается, что соединение между nginx и uWSGI разрывается и запрос прерывается; nginx игнорирует усеченный ответ, в то время как браузер сталкивается с тайм-аутом, поскольку он сохраняет соединение открытым, ожидая больше данных ответа. Приложение генерирует правильный заголовок Content-Length.

Из журнала uWSGI:

uwsgi_response_write_body_do(): Broken pipe [core/writer.c line 429] during GET [...]
OSError: write error
SIGPIPE: writing to a closed pipe/socket/fd (probably the client disconnected) on request [...] !!!

Я уже установил socket-timeout, socket-send-timeoutи socket-write-timeoutв 180конфигурации uWSGI, но безрезультатно. Конфигурация nginx включает uwsgi_read_timeout 180s;иuwsgi_buffering off;

Эффект в основном воспроизводим, то есть он происходит большую часть времени, особенно при больших ответах, но никогда с тем же смещением. Повторение запроса снова и снова может в конечном итоге привести к его завершению.

решение1

Оказалось, что проблема была не в моем приложении и не в nginx, а в неисправном пакетном фильтре перед ними обоими.

Связанный контент