Nginx falha com “104: Conexão redefinida pelo par” quando o Gunicorn retorna um 500

1

Estou executando o Django com o Gunicorn (19.6.0), atrás do Nginx (1.6.2). Tudo funciona bem com um pequeno problema. Se eu enviar uma requisição POST com um payload JSON maior que cerca de 10KB e o Django responder com um 500er, recebo um net::ERR_INCOMPLETE_CHUNKED_ENCODING no Chrome e a resposta está vazia, embora o Django esteja enviando uma string JSON {"error":"some error description"} .

O log do Nginx mostra um 104: Connection reset by peer :

Se a carga útil da solicitação POST for pequena, obtenho o resultado esperado. Se eu enviar a mesma solicitação (também com grandes cargas) diretamente para o gunicorn, nenhum erro acontece e eu recebo a resposta esperada.

Configuração do meu Nginx:

server {
    listen 80 default_server;
    server_name _;
    client_max_body_size 10m;

    location /static/ {
    root /srv/yyyyy;
    }

    location /media/ {
    root /srv/yyyyy;
    }

    # Proxy Pass to Gunicorn
    location / {
    include proxy_params;
    proxy_pass http://unix:/srv/yyyyy/proxy_pass.sock;
    }
}

Eu também testei com proxy_buffering off; no bloco de localização, mas ainda o mesmo resultado.

    
por tobltobs 09.12.2016 / 10:43

0 respostas