NGINX / Gunicorn / Flask — «502 плохих шлюза» и «сбой sendfail () (32: Сломанная труба)» при загрузке умеренных объемов данных

#api #nginx #flask #gunicorn

Вопрос:

У меня есть API-интерфейс Flask, размещенный на сервере Ubuntu с использованием NGNIX и Gunicorn.

При отправке почтовых запросов с небольшими объемами данных все работает гладко.

Но, когда отправленные данные приближаются к 100 КБ (например, строка с примерно 100 000 символов), NGINX отвечает 502 плохими шлюзами, а его журнал ошибок (/var/log/nginx/error.log) содержит «ошибка отправки файла () (32: Сломанный канал) при отправке запроса в восходящий поток».

«Восходящий поток» — это API Flask в сокете Unix.

Если одно и то же количество данных разбивается на серию небольших запросов, выполняемых в быстрой последовательности, все работает нормально. Отправляемые данные не повреждены.

Какова вероятная причина этой ошибки?