uWSGI aborta respostas, perde conexão com nginx

uWSGI aborta respostas, perde conexão com nginx

Estou executando um pequeno aplicativo da web escrito em Python, executado em uWSGI e servido por meio de nginx. Existe um componente que gera arquivos ZIP para download, que ocasionalmente podem ser bem grandes (vários GB). Muitas vezes acontece que a conexão entre o nginx e o uWSGI é interrompida e a solicitação é abortada; O nginx ignora a resposta truncada enquanto o navegador atinge o tempo limite porque mantém a conexão aberta, esperando mais dados de resposta. O aplicativo gera um cabeçalho Content-Length adequado.

Do registro do 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 [...] !!!

Já configurei socket-timeout, socket-send-timeoute socket-write-timeoutna 180configuração do uWSGI, sem sucesso. O conf nginx inclui uwsgi_read_timeout 180s;euwsgi_buffering off;

O efeito é principalmente reprodutível, pois acontece na maior parte do tempo, especialmente com respostas grandes, mas nunca no mesmo deslocamento. Repetir a solicitação continuamente pode levar à conclusão.

Responder1

Acontece que nem meu aplicativo nem o nginx eram o problema, mas um filtro de pacotes com defeito na frente de ambos.

informação relacionada