Erro 504 Gateway Timeout: O Que É e Como Corrigi-lo
Um erro 504 Gateway Timeout é um código de status HTTP que ocorre quando um servidor não consegue receber uma resposta atempada de outro servidor durante o processamento de um pedido. Em termos práticos, significa que o servidor upstream está a demorar demasiado a responder, fazendo com que o gateway ou proxy desista e devolva um erro ao utilizador final.
Este guia completo explica exatamente o que é um erro 504 Gateway Timeout, quais são as suas causas e — mais importante — como corrigi-lo, quer seja um visitante comum ou um administrador de servidor responsável por manter um site online.
O Que É um Erro 504 Gateway Timeout?
Quando um servidor atua como gateway ou proxy reverso — encaminhando pedidos para um servidor upstream — espera uma resposta dentro de uma janela de tempo definida. Se esse servidor upstream não responder a tempo, o gateway devolve um código de status 504 ao cliente.
Isto é diferente de um 502 Bad Gateway (que indica uma resposta inválida) ou de um 503 Service Unavailable (que sinaliza que o servidor está temporariamente indisponível). Um 504 significa especificamente que o gateway *expirou* à espera de uma resposta válida.
Variações Comuns da Mensagem de Erro
Dependendo do software do servidor, do navegador ou do CDN em uso, pode ver este erro apresentado como:
504 Gateway TimeoutHTTP Error 504Gateway Timeout ErrorError 504: Gateway Timeout504 Gateway Time-out*(comum no Nginx)*A 504 error occurred*(comum em ambientes Cloudflare)*
Independentemente da formulação, todos estes apontam para o mesmo problema de raiz: um timeout na comunicação entre servidores.
Causas Comuns de um Erro 504 Gateway Timeout
O erro 504 é quase sempre um problema do lado do servidor, o que significa que tem origem na infraestrutura e não no navegador ou dispositivo do utilizador. Compreender a causa raiz é essencial para aplicar a correção adequada.
1. Sobrecarga do Servidor
Quando um servidor é sobrecarregado por um pico repentino de tráfego ou por um número excessivo de pedidos simultâneos, pode ser incapaz de processar e responder dentro da janela de timeout configurada. Esta é uma das causas mais frequentes de erros 504 em sites com muito tráfego.
Sinais a procurar: Utilização elevada de CPU, esgotamento de memória, longas filas de pedidos nos registos do servidor.
2. Problemas de Conectividade de Rede Entre Servidores
O problema pode não estar em nenhum dos servidores individualmente, mas no caminho de rede entre eles. Perda de pacotes, falhas de encaminhamento ou picos de latência entre o gateway e o servidor upstream podem desencadear um timeout.
Sinais a procurar: Erros intermitentes, erros que se correlacionam com regiões geográficas ou centros de dados específicos.
3. Problemas de Resolução DNS
Se os registos DNS estiverem mal configurados, desatualizados ou não tiverem propagado completamente após uma migração de servidor, o gateway pode não conseguir resolver o endereço do servidor upstream — resultando num timeout antes mesmo de uma ligação ser estabelecida.
Sinais a procurar: Erros 504 que aparecem imediatamente após uma transferência de domínio ou migração de servidor.
4. Firewalls Mal Configuradas ou Demasiado Restritivas
Firewalls demasiado agressivas podem descartar silenciosamente pacotes entre servidores, impedindo que a resposta do servidor upstream chegue ao gateway. Este é um problema comum em ambientes de servidor reforçados onde as regras de firewall não foram atualizadas para ter em conta novos caminhos de comunicação entre servidores.
Sinais a procurar: Erros 504 que afetam apenas tipos específicos de pedidos ou intervalos de IP.
5. Configuração Incorreta de Proxy ou CDN
Se o seu site encaminha tráfego através de um servidor proxy ou Content Delivery Network (CDN) como Cloudflare, Sucuri ou Fastly, qualquer configuração incorreta ou atraso nessa camada pode produzir um erro 504 antes mesmo de o pedido chegar ao seu servidor de origem.
Sinais a procurar: Erros 504 que desaparecem quando o CDN é contornado.
6. Aplicações Upstream Lentas ou Sem Resposta
Se o seu servidor depende de uma API externa, base de dados ou microsserviço que demora demasiado a responder, o gateway irá expirar à espera do resultado. Isto é cada vez mais comum em arquiteturas web modernas que dependem de integrações de terceiros.
Sinais a procurar: Erros 504 que se correlacionam com páginas ou funcionalidades específicas que dependem de fontes de dados externas.
7. Definições de Timeout Demasiado Curtas
Por vezes, o processo upstream está a funcionar corretamente, mas simplesmente demora mais do que o timeout configurado no servidor permite. Se proxy_read_timeout ou diretivas semelhantes estiverem definidas de forma demasiado conservadora, pedidos legítimos serão interrompidos prematuramente.
Como Corrigir um Erro 504 Gateway Timeout
A correção adequada depende de ser um visitante que encontra o erro ou um administrador de servidor responsável pela infraestrutura afetada.
Para Visitantes: Passos Rápidos de Resolução de Problemas
Se é um utilizador comum que vê um erro 504, o problema quase certamente está do lado do servidor — mas há algumas coisas que pode tentar:
#### 1. Atualizar a Página
Prima F5 ou clique no botão de recarregar do navegador. Se o servidor estava momentaneamente sobrecarregado, uma simples atualização pode ter sucesso assim que a carga diminuir.
#### 2. Atualização Forçada
Tente uma atualização forçada (Ctrl+Shift+R no Windows/Linux, Cmd+Shift+R no macOS) para contornar a cache do navegador e forçar um novo pedido ao servidor.
#### 3. Limpar Cache e Cookies do Navegador
Dados em cache desatualizados podem ocasionalmente interferir com a comunicação com o servidor. Limpe a cache e os cookies do seu navegador em Definições → Privacidade e Segurança e tente novamente.
#### 4. Verificar a Sua Ligação à Internet
Verifique se a sua própria ligação é estável. Uma ligação instável pode por vezes impedir uma comunicação adequada com o servidor, agravando um problema de timeout existente.
#### 5. Tentar uma Rede ou Dispositivo Diferente
Mude para dados móveis ou uma rede Wi-Fi diferente. Se o erro desaparecer, o problema pode estar relacionado com o seu ISP ou configuração de rede local, e não com o servidor em si.
#### 6. Aguardar e Tentar Novamente
Os erros 504 são frequentemente transitórios. Se o servidor estiver sob carga temporária, aguardar 5 a 10 minutos e tentar novamente é muitas vezes o curso de ação mais eficaz.
Para Administradores de Servidor: Correções Detalhadas
Se gere o servidor ou site que está a ter erros 504, é necessária uma abordagem mais sistemática.
#### 1. Verificar a Utilização de Recursos do Servidor
Comece por rever o consumo atual de recursos do seu servidor. Utilização elevada de CPU, esgotamento de memória ou disco cheio podem impedir o servidor de processar pedidos a tempo.
# Check CPU and memory usage
top
htop
# Check disk usage
df -h
# Review recent system logs
tail -f /var/log/syslog
journalctl -xeSolução: Se o seu servidor estiver consistentemente sob carga elevada, considere atualizar para um plano mais potente. O Alojamento VPS da AlexHost fornece recursos escaláveis que podem ser ajustados à medida que o seu tráfego cresce, enquanto os Servidores Dedicados oferecem desempenho máximo para ambientes de alta exigência.
#### 2. Reiniciar o Servidor Web e os Serviços de Aplicação
Um reinício controlado do processo do seu servidor web pode limpar workers bloqueados, libertar memória e resolver problemas transitórios.
# Restart Nginx
sudo systemctl restart nginx
# Restart Apache
sudo systemctl restart apache2
# Restart PHP-FPM (if applicable)
sudo systemctl restart php8.1-fpmImportante: Verifique sempre os registos antes e depois de reiniciar para confirmar se o reinício resolveu o problema.
#### 3. Aumentar os Limites de Timeout do Servidor
Se pedidos legítimos estiverem a ser interrompidos porque demoram mais do que o timeout padrão permite, aumente as diretivas de timeout relevantes na configuração do seu servidor.
Para Nginx (/etc/nginx/nginx.conf ou o bloco de servidor do seu site):
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
send_timeout 300;Para Apache (/etc/apache2/apache2.conf ou .htaccess):
Timeout 300
ProxyTimeout 300Para PHP-FPM (/etc/php/8.1/fpm/pool.d/www.conf):
request_terminate_timeout = 300Após efetuar alterações, recarregue ou reinicie sempre o serviço:
sudo nginx -t && sudo systemctl reload nginx
# or
sudo apachectl configtest && sudo systemctl reload apache2#### 4. Investigar e Resolver Problemas de DNS
Se o erro 504 apareceu após uma migração de servidor, transferência de domínio ou alteração de registo DNS, a propagação DNS pode estar incompleta ou os registos podem estar a apontar para o servidor errado.
Passos para diagnosticar:
# Check current DNS resolution
dig yourdomain.com
nslookup yourdomain.com
# Check from a specific DNS server
dig @8.8.8.8 yourdomain.comUtilize uma ferramenta online como o DNS Checker para verificar o estado de propagação global.
Solução: Certifique-se de que os seus registos A e CNAME apontam para o endereço IP correto. Se registou ou transferiu recentemente um domínio, aguarde até 48 horas para propagação completa. O serviço de Registo de Domínios da AlexHost inclui ferramentas de gestão DNS para o ajudar a manter os registos precisos e atualizados.
#### 5. Rever Regras de Firewall e Definições de Segurança
Uma firewall que bloqueia a comunicação entre servidores é uma causa comum, mas frequentemente ignorada, de erros 504. Verifique os registos da sua firewall para ligações descartadas ou rejeitadas.
# Check UFW logs (Ubuntu/Debian)
sudo ufw status verbose
sudo tail -f /var/log/ufw.log
# Check iptables rules
sudo iptables -L -n -v
# Check firewalld (CentOS/RHEL)
sudo firewall-cmd --list-allSolução: Identifique quaisquer regras que possam estar a bloquear o tráfego entre o seu gateway e os servidores upstream, e atualize-as para permitir a comunicação necessária. Tenha cuidado para não abrir portas desnecessariamente — aplique o princípio do menor privilégio.
#### 6. Depurar a Configuração de Proxy e CDN
Se o seu site utiliza um proxy reverso (como o Nginx a atuar como proxy para uma aplicação Node.js ou Python) ou um CDN, verifique se a configuração do proxy está correta e se o servidor de origem é acessível.
Para proxy reverso Nginx, verifique o bloco upstream:
upstream backend {
server 127.0.0.1:3000;
keepalive 32;
}
server {
location / {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_read_timeout 300;
}
}Para erros 504 relacionados com CDN:
- Temporariamente contorne o CDN acedendo ao site diretamente através do seu endereço IP para determinar se o CDN ou o servidor de origem é a fonte do problema.
- Reveja as definições de timeout de origem do CDN — muitos CDNs têm os seus próprios valores de timeout configuráveis que devem estar alinhados com as definições do seu servidor.
- Verifique a página de estado do CDN para quaisquer incidentes em curso.
#### 7. Otimizar Consultas Lentas de Base de Dados e Código de Aplicação
Se o erro 504 for causado por uma aplicação upstream lenta — como uma consulta de base de dados que demora demasiado — a correção reside na otimização ao nível da aplicação e não na configuração do servidor.
Passos para investigar:
- Ativar o registo de consultas lentas no MySQL/MariaDB:
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;- Rever ferramentas de monitorização de desempenho de aplicações (APM) como New Relic, Datadog ou alternativas de código aberto como Netdata.
- Adicionar índices de base de dados a colunas frequentemente consultadas.
- Implementar caching (Redis, Memcached) para reduzir o número de chamadas dispendiosas à base de dados.
#### 8. Monitorizar a Saúde do Servidor de Forma Proativa
A resolução de problemas reativa é menos eficaz do que a monitorização proativa. Configure alertas para limiares de CPU, memória, I/O de disco e tempo de resposta para que possa identificar e resolver problemas antes de resultarem em erros 504 para os seus visitantes.
Se o seu ambiente de alojamento atual não dispõe dos recursos ou flexibilidade para implementar estas otimizações, pode ser altura de considerar uma atualização. Os planos de VPS com cPanel da AlexHost oferecem uma interface de gestão intuitiva juntamente com o desempenho bruto de um servidor privado virtual — facilitando a monitorização e gestão do seu servidor sem necessidade de grande experiência em linha de comandos.
504 vs. Outros Erros Comuns de Gateway
Compreender como o 504 difere de erros HTTP relacionados ajuda-o a diagnosticar problemas com maior precisão:
| Código de Erro | Nome | Significado |
|---|---|---|
| 502 | Bad Gateway | O servidor upstream devolveu uma resposta inválida |
| 503 | Service Unavailable | O servidor está temporariamente incapaz de processar pedidos |
| 504 | Gateway Timeout | O gateway expirou à espera do servidor upstream |
| 408 | Request Timeout | O cliente demorou demasiado a enviar um pedido completo |
| 524 | A Timeout Occurred | Específico do Cloudflare; o servidor de origem expirou |
Prevenção de Erros 504: Melhores Práticas
Em vez de esperar que ocorram erros 504 e depois reagir, implemente estas melhores práticas para minimizar a sua probabilidade:
- Dimensione corretamente os recursos do seu servidor — certifique-se de que o seu plano de alojamento consegue suportar o tráfego esperado, incluindo picos de carga.
- Utilize um balanceador de carga — distribua o tráfego por vários servidores para evitar que qualquer servidor individual se torne um ponto de estrangulamento.
- Implemente caching de forma agressiva — utilize caching de página completa, caching de objetos e caching de borda CDN para reduzir o número de pedidos que chegam ao seu servidor de origem.
- Defina valores de timeout realistas — configure timeouts que reflitam o tempo de processamento real que a sua aplicação necessita, e não valores padrão arbitrários.
- Monitorize a saúde do DNS — verifique regularmente se os seus registos DNS estão corretos e se os valores TTL são adequados.
- Mantenha o software atualizado — software de servidor web desatualizado, versões de PHP ou plugins de CMS podem introduzir estrangulamentos de desempenho que contribuem para timeouts.
- Proteja o seu servidor adequadamente — um certificado SSL bem configurado não só protege os seus utilizadores como também garante que as ligações encriptadas entre servidores não introduzem atrasos inesperados no handshake. Os Certificados SSL da AlexHost são fáceis de implementar e ajudam a manter uma comunicação segura e eficiente entre servidores.
Conclusão
Um erro 504 Gateway Timeout é um problema do lado do servidor que ocorre quando um gateway ou proxy não consegue receber uma resposta atempada de um servidor upstream. Embora possa ser frustrante para os visitantes, é quase sempre diagnosticável e corrigível com a abordagem correta.
Para visitantes, os melhores passos imediatos são atualizar a página, limpar a cache e aguardar alguns minutos antes de tentar novamente.
Para administradores de servidor, a correção requer uma investigação sistemática: verificar a utilização de recursos do servidor, rever as configurações de timeout, auditar as regras de firewall, verificar os registos DNS e otimizar o código de aplicação lento ou as consultas de base de dados.
Escolher um fornecedor de alojamento fiável com infraestrutura robusta é a forma mais eficaz de reduzir a frequência de erros 504. Quer necessite de Alojamento VPS escalável, Servidores Dedicados de alto desempenho ou Alojamento Web Partilhado de entrada de gama, a AlexHost fornece a infraestrutura, suporte e ferramentas para manter o seu site rápido, estável e acessível a qualquer hora.
