Skip to main content

Erros

  • Erros

Upstream timed out (110: Connection timed out) while reading response header from upstream

  • O erro "upstream timed out (110: Connection timed out) while reading response header from upstream" é uma mensagem de erro gerada pelo NGINX, um popular servidor web reverso e balanceador de carga. Este erro ocorre quando o NGINX, atuando como um proxy para um servidor de aplicação ou um serviço upstream, não recebe uma resposta do servidor upstream dentro de um tempo especificado, conhecido como "timeout".

    • Upstream: No contexto do NGINX, "upstream" refere-se ao servidor ou serviço para o qual o NGINX está encaminhando as requisições. Pode ser um servidor de aplicação, como um aplicativo Node.js, Python, Ruby, etc., ou outro serviço que processa as requisições HTTP.

    • Causas Comuns:

      • Desempenho do Servidor Upstream: Se o servidor de aplicação estiver sobrecarregado ou enfrentando problemas de desempenho, pode não conseguir responder a tempo.
      • Configuração de Timeout: O valor de timeout configurado no NGINX pode ser muito baixo para a resposta esperada do servidor upstream, especialmente se for uma operação que naturalmente leva mais tempo (como uma consulta de banco de dados pesada ou uma operação de I/O).
      • Problemas de Rede: Problemas de conectividade entre o NGINX e o servidor upstream também podem resultar nesse erro.
    • Soluções:

      • Ajustar Configurações de Timeout: Aumentar o valor de proxy_read_timeout no NGINX pode ajudar a evitar esses erros, dando mais tempo para o servidor upstream responder.
      • Otimizar o Servidor Upstream: Melhorar o desempenho do servidor de aplicação, otimizando o código da aplicação ou aumentando os recursos do servidor, pode resolver o problema na fonte.
      • Verificar a Conectividade de Rede: Garantir que não há problemas de rede entre o NGINX e o servidor upstream é crucial para a comunicação eficiente.
          location / {
      proxy_pass http://upstream_server;
      proxy_read_timeout 300; # Aumenta o timeout para 300 segundos
      }
  • Erro 110 ou 104 pode ser causado também por sobrecarga do CPU

    • Ex: Estavamos recebendo um ataque em uma rota com método diferente e isso estava causando muitos logs e o CPU estava sobrecarregado por conta disso

"recv() failed (104: Connection reset by peer)"

  • Pode ser problemas de conexão entre a aplicação e o NGINX. Bloqueio de ip's supostamente causam esse problema
warning

Foi realizada uma POC e constatou que o motivo é de sobrecarga de CPU e memória

Link para a POC: https://github.com/adolfosp/POC-Nginx