Como corrigir o erro "Nginx Upstream Prematurely Closed Connection While Reading Response Header From Upstream"?

Publicado 17 de outubro de 2024

Problema: Erro de Conexão Upstream do Nginx

O erro "Nginx upstream prematurely closed connection while reading response header from upstream" ocorre quando o Nginx não consegue obter uma resposta completa de um servidor upstream. Esse problema pode interromper aplicações web e serviços. Frequentemente, leva a requisições incompletas ou falhas, afetando o desempenho e a confiabilidade do sistema.

Solução: Ajustando a Configuração do Nginx

Aumentando as configurações de timeout

Para corrigir o erro "Upstream Prematurely Closed Connection", você pode ajustar as configurações de timeout no seu arquivo de configuração do Nginx:

  • Modifique proxy_read_timeout: Essa configuração controla quanto tempo o Nginx espera pelo servidor upstream enviar dados. Aumente esse valor para permitir mais tempo para respostas grandes:
proxy_read_timeout 300s;
  • Ajuste proxy_connect_timeout: Essa configuração determina quanto tempo o Nginx espera para estabelecer uma conexão com o servidor upstream. Aumente esse valor se seu servidor upstream demorar mais para responder:
proxy_connect_timeout 75s;
  • Configure send_timeout: Essa configuração especifica quanto tempo o Nginx espera para o cliente aceitar dados. Ajuste esse valor com base nas necessidades da sua aplicação:
send_timeout 60s;

Dica: Monitore e ajuste

Após fazer alterações nas configurações de timeout, monitore o desempenho do seu servidor e ajuste os valores conforme necessário. Comece com aumentos conservadores e ajuste gradualmente com base em seus requisitos específicos e padrões de tráfego.

Otimizando as configurações de buffer

Otimizar as configurações de buffer pode ajudar a prevenir o erro "Upstream Prematurely Closed Connection":

  • Configure proxy_buffers: Essa configuração determina o número e o tamanho dos buffers para leitura da resposta do servidor upstream. Ajuste esses valores com base nos recursos do seu servidor e nos tamanhos típicos de resposta:
proxy_buffers 8 16k;
  • Ajuste proxy_buffer_size: Essa configuração especifica o tamanho do buffer usado para ler a primeira parte da resposta do servidor upstream. Aumente esse valor para headers maiores:
proxy_buffer_size 32k;
  • Ajuste large_client_header_buffers: Essa configuração controla o número máximo e o tamanho dos buffers usados para ler headers de requisição grandes do cliente. Ajuste esses valores se você estiver lidando com requisições contendo headers grandes:
large_client_header_buffers 4 32k;

Ao ajustar essas configurações do Nginx, você pode frequentemente corrigir o erro "Upstream Prematurely Closed Connection" e melhorar a capacidade do seu servidor de lidar com respostas grandes e requisições complexas.