DNS RobotDNS Propagation Checker
InícioDNSWHOISIP LookupSSL
DNS RobotDNS Propagation Checker

Kit de ferramentas DNS de última geração

Política de PrivacidadeTermos de ServiçoSobre NósBlogContato

Ferramentas DNS

Consulta DNSDomínio para IPConsulta NSConsulta MXConsulta CNAMEVer tudo

Ferramentas de E-mail

Verificador SPFVerificador DMARCVerificador DKIMTeste SMTPAnalisador de Cabeçalho de E-mailVer tudo

Ferramentas de Sites

Consulta WHOISDisponibilidade de DomínioLocalizador de SubdomíniosDetector de CMSAnalisador de LinksVer tudo

Ferramentas de Rede

Ferramenta PingTracerouteVerificador de PortasVerificador de Cabeçalhos HTTPVerificador de Certificado SSLVer tudo

Ferramentas de IP

Consulta de IPQual é Meu IPVerificador de Lista Negra de IPIP para HostnameConsulta ASNVer tudo

Ferramentas Úteis

Leitor de QR CodeGerador de QR CodeTradutor de Código MorseConversor de Texto para BinárioGerador de Texto PequenoVer tudo
© 2026 DNS Robot. Desenvolvido por ❤ Shaik Brothers
Todos os sistemas em operação
Made with
Home/Blog/504 Gateway Timeout: O Que Significa e Como Resolver

504 Gateway Timeout: O Que Significa e Como Resolver

Shaik Vahid28 de fev. de 20269 min read
Guia para corrigir o erro 504 gateway timeout mostrando a cadeia de timeout entre proxy e servidor upstream com etapas de solução
Guia para corrigir o erro 504 gateway timeout mostrando a cadeia de timeout entre proxy e servidor upstream com etapas de solução

Key Takeaway

O erro 504 Gateway Timeout significa que um servidor proxy ou gateway (como Nginx, Cloudflare ou um balanceador de carga) não recebeu uma resposta do servidor upstream a tempo. Como visitante, aguarde e atualize a página. Como proprietário do site, verifique a saúde do servidor upstream, aumente os valores de timeout, otimize scripts lentos e consultas ao banco de dados, e revise a configuração do CDN.

O Que É o Erro 504 Gateway Timeout?

O 504 Gateway Timeout é um código de status HTTP que significa que um servidor atuando como gateway ou proxy não recebeu uma resposta a tempo do servidor upstream. O proxy ficou esperando o upstream responder, mas demorou demais, então o proxy desistiu e retornou um erro 504 para o seu navegador.

A definição oficial vem da RFC 9110 (HTTP Semantics), Seção 15.6.5, que afirma: "O código de status 504 (Gateway Timeout) indica que o servidor, ao atuar como gateway ou proxy, não recebeu uma resposta a tempo de um servidor upstream que precisava acessar para completar a requisição."

A palavra-chave aqui é gateway. Um erro 504 sempre envolve pelo menos dois servidores: aquele ao qual você se conectou (o proxy/gateway) e o que está por trás dele (o upstream/origem) que não conseguiu responder. Proxies comuns incluem Nginx como proxy reverso, Cloudflare, AWS Application Load Balancer (ALB) e CloudFront.

Note

O 504 é um erro de servidor 5xx — o problema está no lado do servidor, não no seu navegador ou dispositivo. Como visitante, não há nada de errado com a sua conexão de internet.

Como o Erro 504 Aparece

A mensagem de erro 504 varia dependendo do navegador, servidor web e CDN. Aqui estão as mensagens mais comuns que você vai encontrar.

  • 504 Gateway Timeout

  • 504 Gateway Time-out (padrão do Nginx — usa hífen)

  • HTTP Error 504 — Gateway Timeout

  • Esta página não está funcionando — [domínio] demorou muito para responder (Chrome / Edge)

  • Gateway Timeout (Firefox)

  • Error 504

  • 504 Gateway Time-out — The server didn't respond in time (Apache com mod_proxy)

  • Error 524: A timeout occurred (específico do Cloudflare — tecnicamente não é 504, mas a causa raiz é a mesma)

  • ERROR — The request could not be satisfied — 504 ERROR (AWS CloudFront)

Independentemente do texto exibido, a causa subjacente é sempre a mesma: um servidor proxy ficou esperando o servidor upstream responder e o upstream não respondeu dentro da janela de timeout configurada.

Como o Erro 504 Gateway Timeout Acontece

Para entender o erro 504, você precisa entender a cadeia de timeout entre o seu navegador e o servidor de origem. Uma requisição web típica passa por várias camadas, e cada camada tem sua própria configuração de timeout.

Aqui está um fluxo de requisição típico: Navegador → CDN (Cloudflare) → Balanceador de Carga → Nginx → PHP-FPM → Banco de Dados. Se a consulta ao banco de dados leva 90 segundos e o proxy_read_timeout do Nginx está configurado para 60 segundos, o Nginx para de esperar e retorna um 504 para o balanceador de carga, que passa de volta para o seu navegador.

O servidor que retorna o 504 é sempre o intermediário (proxy ou gateway), nunca o servidor de origem em si. O servidor de origem simplesmente não respondeu a tempo — ele pode ainda estar processando a requisição, ou pode ter travado completamente.

CamadaTimeout PadrãoO Que Acontece no Timeout
Cloudflare (Free/Pro)100 segundosRetorna Error 524 (proprietário)
AWS CloudFront30 segundosRetorna 504 ERROR
AWS ALB60 segundosRetorna 504 com header awselb
GCP Load Balancer30 segundosRetorna 504
Nginx (proxy_read_timeout)60 segundosRetorna 504 Gateway Time-out
Apache (ProxyTimeout)60 segundosRetorna 504 Gateway Timeout
PHP max_execution_time30 segundosScript morre, Nginx não recebe resposta → 504

Causas Comuns do Erro 504 Gateway Timeout

Entender a causa raiz é o caminho mais rápido para resolver o problema. Aqui estão os motivos mais comuns pelos quais um servidor retorna 504, ordenados por frequência.

  • Servidor de origem lento — Scripts PHP executando consultas complexas ao banco de dados, gerando relatórios ou chamando APIs de terceiros lentas podem exceder o timeout do proxy. Esta é a causa #1 dos erros 504.

  • Sobrecarga do servidor — CPU a 100%, falta de memória (OOM kills) ou todos os workers do PHP-FPM ocupados. O servidor de origem está funcionando mas sobrecarregado demais para responder a tempo.

  • Gargalo no banco de dados — Consultas SQL lentas, índices faltando, locks de tabelas ou pools de conexão esgotados. A aplicação trava esperando pelo banco de dados, e o proxy dá timeout.

  • Valores de timeout mal configurados — proxy_read_timeout do Nginx configurado muito baixo para um backend que legitimamente precisa de mais tempo (ex: gerador de relatórios ou handler de upload de arquivos).

  • Problemas de rede entre proxy e origem — Perda de pacotes, alta latência ou problemas de roteamento entre data centers. Comum em setups multi-região ou nuvem híbrida.

  • Firewall ou security group bloqueando tráfego — Security groups da AWS não permitindo tráfego em portas efêmeras, regras de iptables bloqueando conexões internas ou WAF bloqueando requisições upstream legítimas.

  • Falha de resolução DNS no proxy — O proxy não consegue resolver o hostname do upstream. No Nginx, isso acontece ao usar variáveis no proxy_pass sem uma diretiva resolver.

  • Timeout do CDN — O Cloudflare tem um limite fixo de 100 segundos nos planos Free/Pro/Business. Se o seu servidor de origem demora mais que 100 segundos, o Cloudflare retorna Error 524 independentemente da sua configuração do Nginx.

  • Ataque DDoS — Uma enxurrada de requisições esgota os recursos do servidor, tornando a origem lenta demais para responder ao tráfego legítimo dentro da janela de timeout do proxy.

Solução para Visitantes: O Que Você Pode Fazer

Se você está vendo um erro 504 no site de outra pessoa, o problema está no servidor deles — não no seu dispositivo. No entanto, vale a pena tentar algumas coisas.

  • Aguarde e atualize — A maioria dos erros 504 são temporários. Espere 30-60 segundos, depois force a atualização da página com Ctrl+Shift+R (Windows/Linux) ou Cmd+Shift+R (Mac).

  • Verifique se o site está fora do ar para todos — Use a ferramenta de HTTP Headers do DNS Robot para verificar o código de resposta do servidor de uma localização externa. Se retornar 504 para todos, o problema é no servidor.

  • Tente no modo anônimo ou outro navegador — Isso descarta extensões do navegador, páginas de erro em cache e problemas de configuração local.

  • Tente uma rede diferente — Mude de Wi-Fi para dados móveis, ou desative seu VPN. Problemas de roteamento entre seu provedor de internet e o servidor podem às vezes causar 504.

  • Limpe seu cache DNS — Registros DNS desatualizados podem direcionar requisições para o servidor errado. No Windows: ipconfig /flushdns. No Mac: sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder.

  • Verifique a página de status ou redes sociais do site — O site pode ter publicado sobre uma queda conhecida ou janela de manutenção.

Tip

Use a ferramenta Ping do DNS Robot para verificar se o servidor está acessível, e o Port Checker para confirmar que as portas 80 e 443 estão abertas. Se o servidor não responder ao ping ou as portas estiverem fechadas, o problema vai além de um gateway timeout.

Correção 1: Aumentar Configurações de Timeout (Nginx e Apache)

A correção mais comum para erros 504 é aumentar os valores de timeout no seu proxy reverso. Se o seu backend legitimamente precisa de mais de 60 segundos (o padrão), o proxy precisa saber que deve esperar mais.

nginx
# Nginx — reverse proxy to a backend (Node.js, Python, etc.)
location / {
    proxy_pass http://backend;
    proxy_connect_timeout 300;
    proxy_send_timeout    300;
    proxy_read_timeout    300;
    send_timeout          300;
}

# Nginx — FastCGI (PHP-FPM)
location ~ \.php$ {
    fastcgi_pass unix:/var/run/php-fpm.sock;
    fastcgi_read_timeout    300;
    fastcgi_send_timeout    300;
    fastcgi_connect_timeout 300;
    include fastcgi_params;
}

Warning

Aumentar timeouts é uma correção rápida, não uma solução permanente. Se o seu backend rotineiramente demora minutos para responder, a solução real é otimizar o backend — não fazer o proxy esperar mais.

Para Apache com mod_proxy, adicione ProxyTimeout 300 no seu VirtualHost ou use ProxyPass / http://backend:8080/ timeout=300 para configuração por backend.

Importante: Esses timeouts medem o tempo entre duas operações de leitura/escrita consecutivas, não o tempo total de transferência. Então proxy_read_timeout 300 significa "se nenhum dado chegar por 300 segundos", não "a resposta inteira deve ser concluída em 300 segundos." Após alterar os valores de timeout, recarregue a configuração: sudo nginx -t && sudo systemctl reload nginx.

Correção 2: Otimizar Scripts Lentos e Consultas ao Banco de Dados

Se o seu backend consistentemente excede o timeout, aumentar o valor do timeout apenas mascara o problema. A correção real é fazer o backend responder mais rápido.

  • Encontre consultas lentas — Ative o log de consultas lentas do MySQL (slow_query_log = 1, long_query_time = 1) ou use EXPLAIN ANALYZE nas consultas suspeitas. Adicione índices faltando, evite SELECT * e pagine conjuntos de resultados grandes.

  • Adicione cache — Use Redis ou Memcached para cachear resultados de consultas caras. Uma consulta que leva 5 segundos em cada carregamento de página deveria estar cacheada.

  • Mova trabalho pesado para jobs em segundo plano — Geração de relatórios, envio de e-mails, processamento de imagens e importações de dados devem rodar em uma fila de jobs (Celery, Sidekiq, Bull), não no ciclo de requisição HTTP.

  • Otimize chamadas de API — Se o seu backend chama APIs de terceiros lentas, adicione timeouts a essas chamadas e implemente circuit breakers para que uma API lenta não bloqueie todas as requisições.

  • Reduza consultas N+1 — Consultas geradas por ORMs frequentemente fazem centenas de chamadas individuais ao banco de dados. Use eager loading ou consultas em batch para reduzir viagens de ida e volta.

Correção 3: Verificar Recursos do Servidor (CPU, RAM, Disco)

Se o servidor de origem está sobrecarregado, ele não consegue processar requisições rápido o suficiente, e o proxy dá timeout esperando. Verifique o que está consumindo recursos.

bash
# Check CPU and memory usage
top -bn1 | head -20

# Check disk space (full disk = silent failures)
df -h

# Check memory details
free -m

# Find processes using the most CPU
ps aux --sort=-%cpu | head -10

# Find processes using the most memory
ps aux --sort=-%mem | head -10

# Check active network connections
ss -s

Se a CPU ou RAM está em 90%+, você precisa otimizar sua aplicação, encerrar processos descontrolados ou fazer upgrade do servidor. Se o espaço em disco está cheio, limpe arquivos de log antigos, backups ou arquivos temporários — um disco cheio pode travar silenciosamente bancos de dados e causar erros 504 em cascata.

Correção 4: Verificar Logs de Erro

Os logs de erro dizem exatamente por que o proxy retornou 504. Sempre verifique os logs antes de tentar adivinhar a causa.

bash
# Nginx error log (look for "upstream timed out")
tail -50 /var/log/nginx/error.log

# Apache error log
tail -50 /var/log/apache2/error.log       # Debian/Ubuntu
tail -50 /var/log/httpd/error_log          # CentOS/RHEL

# PHP-FPM log
tail -50 /var/log/php8.2-fpm.log

# System log (OOM kills, crashes)
tail -50 /var/log/syslog

Mensagens comuns nos logs que causam 504:

"upstream timed out (110: Connection timed out)" (Nginx) — O servidor upstream não respondeu dentro do proxy_read_timeout. Aumente o timeout ou corrija o upstream lento.

"server reached pm.max_children" (PHP-FPM) — Todos os processos worker do PHP estão ocupados. Aumente pm.max_children na configuração do pool PHP-FPM.

"connect() failed (111: Connection refused)" (Nginx) — O servidor upstream não está rodando ou não está escutando na porta esperada. Reinicie o backend.

"Too many connections" (MySQL) — O limite de conexões do banco de dados foi esgotado. Aumente max_connections na configuração do MySQL ou otimize o pool de conexões.

Correção 5: Ajustar Configurações do PHP-FPM

Após alterar as configurações do PHP-FPM, reinicie o serviço: sudo systemctl restart php8.2-fpm. Garanta que o fastcgi_read_timeout do Nginx seja sempre maior ou igual ao max_execution_time do PHP. Caso contrário, o Nginx desiste antes do PHP terminar, criando um erro 504.

ConfiguraçãoArquivoPadrãoRecomendado
max_execution_timephp.ini30 segundos120-300 segundos
request_terminate_timeoutConfig do pool PHP-FPM0 (usa max_execution_time)Igual ao max_execution_time
pm.max_childrenConfig do pool PHP-FPM5Baseado na RAM: (RAM Total - 1GB) / 40MB
pm.max_requestsConfig do pool PHP-FPM0 (ilimitado)500-1000 (previne vazamento de memória)
fastcgi_read_timeoutnginx.conf60 segundos>= max_execution_time

Correção 6: Verificar Configuração do CDN e Proxy

Usuários do Cloudflare: Se você está em um plano Free, Pro ou Business e seu servidor de origem demora mais de 100 segundos, você sempre receberá Error 524. As únicas opções são: otimizar seu backend para responder em até 100 segundos, mover tarefas demoradas para jobs em segundo plano, ou fazer upgrade para Enterprise.

Usuários do AWS CloudFront: Aumente o timeout de resposta de origem nas configurações de origem da sua distribuição. O padrão de 30 segundos geralmente é muito baixo para conteúdo dinâmico.

Use a ferramenta de HTTP Headers do DNS Robot para verificar os cabeçalhos de resposta e identificar qual camada está retornando o 504. Procure por cabeçalhos como server: cloudflare, server: awselb/2.0 ou server: nginx para identificar o proxy.

CDN / ProxyTimeout PadrãoMáximo ConfigurávelObservações
Cloudflare Free100 segundos100 segundos (fixo)Retorna Error 524, não 504
Cloudflare Pro100 segundos100 segundos (fixo)Igual ao Free — não pode aumentar
Cloudflare Business100 segundos100 segundos (fixo)Mesmo limite se aplica
Cloudflare Enterprise100 segundos6.000 segundosConfigurável via Cache Rules
AWS CloudFront30 segundos180 segundosConfigurado nas opções de origem da distribuição
AWS ALB60 segundosConfigurávelConfigurado via idle timeout
GCP Load Balancer30 segundosSem limite práticoConfigurado via timeout do backend service

Correção 7: Soluções Específicas para WordPress

Sites WordPress são particularmente propensos a erros 504 devido a plugins pesados, inchaço no banco de dados e limites de hospedagem compartilhada. Aqui estão correções direcionadas.

  • Identifique plugins lentos — Desative todos os plugins e reative um por um. Se você não consegue acessar o wp-admin, renomeie a pasta plugins via SSH: mv wp-content/plugins wp-content/plugins_disabled. Use o plugin Query Monitor para identificar consultas lentas ao banco de dados.

  • Aumente a memória PHP — Adicione define('WP_MEMORY_LIMIT', '512M'); ao wp-config.php. Muitos plugins precisam de mais que os 128MB padrão.

  • Instale um plugin de cache — WP Super Cache, W3 Total Cache ou WP Rocket reduzem o processamento no servidor ao servir HTML estático em vez de executar PHP em cada requisição.

  • Use cache de objetos — Instale Redis ou Memcached e um plugin de object cache para WordPress. Isso cacheia resultados de consultas ao banco de dados na memória, reduzindo a carga no MySQL.

  • Limpe o banco de dados — Exclua revisões antigas de posts, transients, comentários de spam e metadados órfãos. Use WP-Optimize ou WP-Sweep. Adicione define('WP_POST_REVISIONS', 5); para limitar revisões futuras.

  • Desative o wp-cron — O cron virtual do WordPress roda em cada carregamento de página e pode acumular tarefas. Adicione define('DISABLE_WP_CRON', true); ao wp-config.php e configure um cron job real no servidor: */5 * * * * curl -s https://seusite.com/wp-cron.php > /dev/null 2>&1.

504 vs 502 vs 503 vs 408: Qual a Diferença?

A distinção crítica: o 502 significa que o proxy recebeu uma resposta ruim, enquanto o 504 significa que o proxy não recebeu nenhuma resposta. O 503 não requer um proxy — qualquer servidor pode retorná-lo quando sobrecarregado. O 408 é um timeout do lado do cliente (classe 4xx), onde o servidor desistiu de esperar pelo cliente.

Se você vê um 502 e um 504 ao mesmo tempo, o servidor upstream provavelmente está travando. O 502 ocorre quando o proxy recebe uma resposta parcial ou corrompida de um processo morrendo, e o 504 ocorre quando o processo está completamente sem resposta.

CódigoNomeO Que AconteceuRequer Proxy?
408Request TimeoutO cliente foi lento demais ao enviar a requisição para o servidorNão — o servidor dá timeout no cliente
502Bad GatewayO proxy recebeu uma resposta inválida ou corrompida do upstreamSim
503Service UnavailableO servidor está sobrecarregado ou em manutenção — não consegue processar nenhuma requisiçãoNão — qualquer servidor pode retornar
504Gateway TimeoutO proxy não recebeu nenhuma resposta do upstream dentro do timeoutSim
524A Timeout OccurredO Cloudflare conectou à origem mas não recebeu resposta HTTP dentro de 100sApenas Cloudflare (não padrão)

O Erro 504 Afeta o SEO?

Resposta curta: um 504 breve não tem impacto no SEO. Um 504 prolongado pode causar desindexação.

Minutos a horas: Sem impacto. O Google entende erros temporários de servidor e não penaliza imediatamente. Se o Googlebot não rastrear durante a queda, ele nem vai perceber.

Horas a dias: O Google reduz a frequência de rastreamento para sites que retornam erros 5xx para evitar sobrecarregar um servidor com problemas. As páginas podem aparecer como "Erro do servidor (5xx)" no relatório de Indexação de Páginas do Google Search Console.

Dias a semanas: Erros 504 persistentes podem levar à desindexação das páginas afetadas. Os rankings caem significativamente. Segundo John Mueller do Google: se um servidor fica fora do ar por um dia, as coisas podem ficar "em fluxo" por uma a três semanas após a recuperação.

Recuperação: Uma vez que o servidor está estável novamente, o Google re-rastreia e re-indexa as páginas automaticamente. Use a ferramenta de Inspeção de URL do Google Search Console para solicitar a reindexação de páginas importantes. O tempo de recuperação depende do tamanho do site e de quanto tempo os erros duraram.

Note

Um 504 não gera uma penalidade manual. Ele causa uma queda temporária na frequência de rastreamento e potencial desindexação — ambos são reversíveis assim que o servidor estiver estável. O fator crítico é a duração, não a frequência.

Como Prevenir Erros 504 Gateway Timeout

Prevenção é melhor do que apagar incêndios. Estas práticas vão manter seu servidor respondendo dentro dos limites de timeout.

  • Configure monitoramento — Use monitoramento de uptime (UptimeRobot, Pingdom ou a ferramenta Ping do DNS Robot) para detectar erros 504 antes que seus usuários reportem.

  • Alinhe sua cadeia de timeout — Garanta que timeout do CDN >= timeout do proxy >= timeout da aplicação. Valores desalinhados causam erros 504 imprevisíveis.

  • Implemente health checks — Balanceadores de carga e proxies devem verificar a saúde dos servidores upstream e redirecionar tráfego para longe de instâncias que não respondem.

  • Use cache agressivamente — Cache de ativos estáticos, respostas de API e consultas ao banco de dados. Uma resposta cacheada nunca é lenta o suficiente para causar um 504.

  • Auto-scale — Use escalonamento horizontal (mais instâncias) para que picos de tráfego não sobrecarreguem um único servidor.

  • Mova trabalho pesado para segundo plano — Mova processamento de arquivos, geração de relatórios, envio de e-mails e importações em massa para filas de jobs em segundo plano. Nunca faça trabalho pesado dentro de uma requisição HTTP.

  • Monitore consultas lentas — Ative o log de consultas lentas no MySQL/PostgreSQL. Configure alertas para consultas que excedam 1 segundo.

  • Mantenha dependências saudáveis — Monitore APIs de terceiros das quais seu backend depende. Adicione timeouts e circuit breakers para que uma API lenta não cause erros 504 em cascata para todos os usuários.

Verifique se um servidor está respondendo e inspecione seus códigos de status HT

Verifique se um servidor está respondendo e inspecione seus códigos de status HTTP, cabeçalhos de resposta e tempo — use a ferramenta HTTP Headers do DNS Robot para depurar erros 504.

Try HTTP Headers Checker

Frequently Asked Questions

O erro 504 Gateway Timeout significa que um servidor proxy ou gateway (como Nginx, Cloudflare ou um balanceador de carga) ficou esperando o servidor upstream/origem responder, mas o upstream demorou demais. O proxy desistiu e retornou um erro 504 para o seu navegador.

Related Tools

Http HeadersPingPort CheckerDns Lookup

Related Articles

Http Error 503Http Error 500Fix Dns Server Not Responding

Table of Contents

  • O Que É o Erro 504 Gateway Timeout?
  • Como o Erro 504 Aparece
  • Como o Erro 504 Gateway Timeout Acontece
  • Causas Comuns do Erro 504 Gateway Timeout
  • Solução para Visitantes: O Que Você Pode Fazer
  • Correção 1: Aumentar Configurações de Timeout (Nginx e Apache)
  • Correção 2: Otimizar Scripts Lentos e Consultas ao Banco de Dados
  • Correção 3: Verificar Recursos do Servidor (CPU, RAM, Disco)
  • Correção 4: Verificar Logs de Erro
  • Correção 5: Ajustar Configurações do PHP-FPM
  • Correção 6: Verificar Configuração do CDN e Proxy
  • Correção 7: Soluções Específicas para WordPress
  • 504 vs 502 vs 503 vs 408: Qual a Diferença?
  • O Erro 504 Afeta o SEO?
  • Como Prevenir Erros 504 Gateway Timeout
  • FAQ