15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar
28.10.2024

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 Timeout
  • HTTP Error 504
  • Gateway Timeout Error
  • Error 504: Gateway Timeout
  • 504 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 -xe

Soluçã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-fpm

Importante: 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 300

Para PHP-FPM (/etc/php/8.1/fpm/pool.d/www.conf):

request_terminate_timeout = 300

Apó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.com

Utilize 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-all

Soluçã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 ErroNomeSignificado
502Bad GatewayO servidor upstream devolveu uma resposta inválida
503Service UnavailableO servidor está temporariamente incapaz de processar pedidos
504Gateway TimeoutO gateway expirou à espera do servidor upstream
408Request TimeoutO cliente demorou demasiado a enviar um pedido completo
524A Timeout OccurredEspecí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.

15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar