Corrigindo erros 502 Bad Gateway no Nginx: Guia passo a passo

Este guia abrangente detalha as causas comuns dos erros 502 no Nginx, incluindo problemas de configuração de proxy, e fornece etapas claras e práticas para diagnosticá-los e resolvê-los rapidamente.

O erro 502 Bad Gateway no Nginx é um dos problemas mais comuns enfrentados por administradores de sistemas. Ele ocorre quando o Nginx, atuando como um servidor proxy reverso, recebe uma resposta inválida do servidor upstream (como o PHP-FPM, Gunicorn, Node.js, etc.).

Causas comuns

  1. Serviço Upstream inativo: O aplicativo que deveria processar a requisição não está rodando.
  2. Configurações incorretas: Erros no arquivo de configuração do Nginx (ex: porta ou socket errado).
  3. Timeout: O servidor upstream está demorando muito para responder.
  4. Limites de recursos: O servidor ficou sem memória ou CPU.

Como diagnosticar e resolver

1. Verifique os logs de erro

O primeiro passo é sempre verificar os logs do Nginx. Eles geralmente apontam exatamente o que deu errado:

sudo tail -f /var/log/nginx/error.log

2. Verifique o status do serviço upstream

Certifique-se de que o serviço que o Nginx está tentando acessar esteja ativo:

sudo systemctl status php-fpm  # Exemplo para PHP

3. Verifique a configuração do proxy

Certifique-se de que o proxy_pass ou fastcgi_pass aponta para o endereço e porta corretos:

location / {
    proxy_pass http://127.0.0.1:8080;
}

4. Ajuste os Timeouts

Se o seu aplicativo for lento, você pode precisar aumentar os tempos limite no seu arquivo de configuração:

proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;

Após fazer qualquer alteração, não se esqueça de testar a configuração e recarregar o Nginx:

sudo nginx -t
sudo systemctl reload nginx