O erro 504 Gateway Timeout é um dos erros HTTP 5xx mais comuns enfrentados pelos proprietários e visitantes do site. Para muitos blogs e plataformas de comércio eletrônico, saber como corrigir erros de servidor como este é crucial para evitar que seus visitantes, com tanto esforço, saltem para sites concorrentes.

Como o erro 504 Gateway Timeout não lhe diz por que ocorreu, é difícil identificar o que está causando o tempo limite do servidor. Este artigo ajudará você a compreendê-lo em profundidade, aprender como diagnosticar sua causa, e depois corrigi-la.

Após experimentar todas as várias soluções mencionadas no post, seu site deve estar pronto e funcionando em pouco tempo.

Parece interessante? Vamos mergulhar!

Confira nosso guia em vídeo para corrigir o erro 504 Gateway Timeout no seu site

Para simplificar ainda mais, este erro ocorre quando dois servidores estão envolvidos no processamento de uma solicitação, e o primeiro servidor (tipicamente o servidor principal) fica esperando por uma resposta do segundo servidor (servidor upstream).

Código de erro 504 Gateway Timeout Error
Tipo de erro Do lado do servidor
Variações do erro 504 Gateway Timeout504 Gateway Timeout NGINX
NGINX 504 Gateway Timeout
Gateway Timeout Error
Error 504
HTTP Error 504
HTTP Error 504 — Gateway Timeout
HTTP 504
504 Error
Gateway Timeout (504)
Causas do erro Problemas de conectividade do servidor
Problemas de conectividade de rede
Problemas de DNS
Problemas de firewall

É assim que o processo funciona: toda vez que você visita um site em seu navegador, o navegador envia uma solicitação para o servidor web onde o site está hospedado. O servidor processa a solicitação e responde com os recursos solicitados.

Como funcionam as solicitações e respostas HTTP
Como funcionam as solicitações e respostas HTTP.

A resposta do servidor inclui um dos muitos códigos de status HTTP para indicar o status da resposta para o navegador. Mas nem todos esses códigos de status HTTP são erros. Por exemplo, um código de status 200 OK significa que o servidor processou a solicitação com sucesso e “Tudo está OK”.

A classe 5xx dos códigos de status HTTP indica que algo está errado com o servidor, o servidor está ciente disso e não pode realizar o pedido do cliente. Como resultado, eles também são chamados de códigos de status Server Error 5xx.

Oficialmente, cinco códigos de status são especificados sob a classe 5xx (500, 501, 502, 503, 504). Você também pode encontrar muitos códigos não oficiais (506, 507, 509, 520, etc.).

O erro 504 Gateway Timeout se manifesta de várias formas. Aqui estão algumas formas como ele normalmente aparece:

O 'HTTP ERROR 504' no navegador Chrome
O ‘HTTP ERROR 504’ no navegador Chrome.

O erro 504 Gateway Timeout é semelhante ao erro 502 Bad Gateway, o que indica que o primeiro servidor recebeu uma resposta inválida do segundo servidor (servidor upstream).

O código de status '504 GATEWAY TIMEOUT' em Chrome DevTools
O código de status ‘504 GATEWAY TIMEOUT’ em Chrome DevTools.

Variações do erro 504 Gateway Timeout

O navegador exibe qualquer erro 504 Gateway Timeout dentro dele, assim como qualquer outro erro. Como existe uma variedade de sistemas operacionais, servidores web, navegadores e agentes de usuário, ele pode aparecer de várias maneiras.

Abaixo estão algumas variações comuns de mensagens de erro 504 que você pode encontrar:

  • 504 Gateway Timeout
  • 504 Gateway Timeout NGINX
  • NGINX 504 Gateway Timeout
  • Gateway Timeout Error
  • Error 504
  • HTTP Error 504
  • HTTP Error 504 — Gateway Timeout
  • HTTP 504
  • 504 Error
  • Gateway Timeout (504)
  • Tempo limite de porta de entrada (504)
  • Esta página não está funcionando – O domínio demorou muito para responder
  • 504 Gateway Time-out – O servidor não respondeu em tempo
  • O pedido de página foi cancelado porque demorou muito tempo para ser concluído.
  • Visitantes do site: Houve um problema que atendeu ao seu pedido, por favor tente novamente em alguns minutos.
  • Proprietários do site: Houve um intervalo de tempo de porta de entrada. Você deve visitar seu registro de erros para obter mais informações.
  • Uma tela branca

Todas as respostas de erro acima, embora formuladas de forma diferente, apontam para o mesmo erro de servidor do 504 Gateway Timeout.

Servidores Web e sites podem personalizar a forma como mostram aos usuários o erro do 504 Gateway Timeout. Alguns deles podem ser legais! É uma excelente tática para acabar com o desapontamento do seus visitantes.

Página de erro HTTP 504 personalizada do GitHub
Página de erro HTTP 504 personalizada do GitHub

Quais são as causas do erro 504 Gateway Timeout?

Como o erro 504 é devido a um timeout entre servidores, o problema provavelmente não está no dispositivo do cliente ou na conexão de Internet. Isso também inclui seu dispositivo e sua conexão.

Um erro 504 Gateway Timeout indica que o servidor web está esperando muito tempo por uma resposta de outro servidor e “timing out”. Pode haver muitas razões para este timeout: o outro servidor não está funcionando corretamente, está sobrecarregado, ou está em baixo.

O outro servidor não precisa ser sempre externo (por exemplo, CDN, API gateway). Também pode ser uma entidade semelhante a um servidor dentro do servidor web principal (por exemplo, servidor proxy reverso, servidor de banco de dados).

Impacto SEO do erro 504 Gateway Timeout

Todos os 5xx erros impedem o carregamento de uma página web, tornando-os prejudiciais à experiência do usuário. Portanto, motores de busca como o Google levam esses erros a sério. Se o erro persistir por muito tempo, ele pode até mesmo levar à desindexação da página web a partir dos resultados dos mecanismos de busca.

Por exemplo, quando os spiders do Google tropeçam em um 503 Service Unavailable, elas entenderão que é um problema temporário, pois é usado principalmente para habilitar o modo de manutenção do site. Assim, eles tentarão rastejar a página novamente mais tarde.

Um erro 504 Gateway Timeout não é necessariamente temporário, pois pode ser devido a múltiplas razões. Se seu site estiver fora do ar por apenas alguns minutos, e se os spiders estiverem tentando rastreá-lo várias vezes a cada minuto, elas tentarão servir a página a partir do seu cache.  Eles nem notariam isso.

Mas se seu site estiver fora do ar por 6 horas ou mais, então o Google considerará o erro 504 como um problema sério em todo o site que você precisa corrigir o mais rápido possível. Isto pode ter um impacto negativo em seu SEO.

Visualizando os erros de rastreamento no Console de Busca do Google
Visualizando os erros de rastreamento no Console de Busca do Google

O Google Search Console é uma das melhores ferramentas de SEO para monitorar os erros HTTP 5xx do seu site.

Como corrigir o erro 504 Gateway Timeout?

Sem saber detalhes exatos sobre o site, como sua configuração de servidor, plano de hospedagem, plugins de terceiros e o tráfego que atrai, você pode achar frustrante e avassalador corrigir um erro 504 Gateway Timeout.

Uma vez que muitas variáveis estão envolvidas, recomendo que você comece corrigindo problemas do lado do cliente, que são bastante raros, e depois avance para a correção de problemas do lado do servidor. Eles geralmente são os culpados com 504 erros.

1. Tente recarregar a página da Web

Uma das primeiras coisas que você pode tentar ao encontrar um erro 504 Gateway Timeout é esperar alguns minutos e tentar recarregar a página.

Você pode pressionar o atalho de teclado F5 para atualizar/carregar a página da web na maioria dos navegadores. Para remover o cache do navegador da página antes de recarregar, você pode pressionar o combo de atalhos CTRL+F5.

Refrescando uma página web no navegador Chrome
Refrescando uma página web no navegador Chrome

Enquanto isso, você também pode tentar carregar o site em um navegador diferente para descartar isso como um problema. Como a maioria dos 504 erros se deve à sobrecarga temporária dos servidores, o uso desta solução deve fazer com que seu site retorne imediatamente.

Se esperar e recarregar o site não resolver o problema do erro 504, você pode verificar se um site está em baixo para todos ou apenas para você. As duas grandes ferramentas on-line para testar um site para o tempo de inatividade são “Down for Everyone or Just Me” e “Is It Down Right Now”?

Teste Kinsta.com em Down for Everyone or Just Me
Teste Kinsta.com em Down for Everyone or Just Me

2. Reinicialize seus dispositivos de rede

Às vezes, problemas com seus dispositivos de rede como modem ou roteador podem levar a um erro 504 Gateway Timeout. A reinicialização destes dispositivos poderia ajudá-lo a resolver o problema.

Enquanto você pode desligar todos estes dispositivos de rede em qualquer ordem, a ordem na qual você os liga novamente é importante. Normalmente, ligue estes dispositivos a partir do “outside-in”, seguindo a ordem de conexão do provedor de serviços de Internet ao dispositivo principal do seu cliente.

3. Verifique suas configurações Proxy

Um servidor proxy fica entre seu dispositivo e a Internet. Ele é usado principalmente para melhorar a privacidade on-line, escondendo informações privadas (por exemplo, localização do dispositivo) de sites e servidores web (por exemplo, usando uma VPN).

Embora seja raro que servidores proxy causem um erro de 504, configurações incorretas de servidores proxy podem às vezes ser a razão. Você pode desativar o servidor proxy e tentar recarregar a página web para ver se ele corrigirá o erro.

Mudando as configurações de 'Proxy' no Windows 10
Mudando as configurações de ‘Proxy’ no Windows 10

A maioria dos clientes não usa um serviço de proxy, então você pode pular esta etapa se estiver confiante de que não usa nenhum servidor proxy. Entretanto, você pode tê-lo configurado sem que você sequer saiba. Sugiro que você verifique as configurações de proxy do seu dispositivo e do navegador para descartar esta causa.

4. Verifique problemas de DNS

Um erro 504 Gateway Timeout também pode ser causado por problemas DNS no lado do servidor ou no lado do cliente (ou ambos).

A razão mais provável para um problema de DNS do lado do servidor é o FQDN (nome de domínio totalmente qualificado) que não se resolve com o endereço IP correto ou o servidor DNS não responde. Normalmente, isto ocorre quando você acaba de migrar seu site WordPress para um novo servidor ou host. Portanto, é importante esperar que os registros DNS do domínio se propaguem por completo, o que pode levar até 24 horas.

Você pode usar ferramentas gratuitas como o whatsmydns.net DNS Checker ou DNSMap para ver se seu DNS se propagou ao redor do mundo.

Verificando a propagação DNS para seu domínio em whatsmydns.net
Verificando a propagação DNS para seu domínio em whatsmydns.net

Para resolver problemas de DNS do lado do cliente, você poderia tentar limpar seu cache DNS local. É como limpar o cache do seu navegador, exceto aqui você está limpando o cache DNS do sistema operacional.

Se você estiver usando Windows, você pode lavar o cache DNS abrindo o prompt de comando e entrando na seguinte diretiva:

ipconfig /flushdns
Lavagem do Cache DNS com Prompt de Comando no Windows
Lavagem do Cache DNS com Prompt de Comando no Windows

Você deve ver uma mensagem “Cache do resolvedor DNS com sucesso”, caso tenha funcionado.

Para as últimas versões macOS, você pode abrir o Terminal e executar o seguinte comando:

sudo killall -HUP mDNSResponder

Você não verá nenhuma notificação em macOS quando o processo terminar, mas você pode mudar isso anexando o comando com sua mensagem personalizada.

sudo killall -HUP mDNSResponder; DNS Cache was cleared successfully

Se você estiver usando versões antigas do macOS, o comando que você precisa digitar varia de acordo com a versão do macOS que você está executando. Para mais detalhes, você pode consultar a seção macOS no tutorial detalhado do DNS da Kinsta.

Se você estiver usando o sistema operacional Linux, então o processo é bastante similar ao MacOS, pois até mesmo o Linux usa o Terminal como sua interface de linha de comando. Como existem muitas distribuições de Linux, o comando exato que você precisa para executar pode variar de uma distro para outra. Você pode conferir o guia da Kinsta para mais informações.

Finalmente, você pode mudar temporariamente seus servidores DNS do lado do cliente. Por padrão, seu ISP atribui os servidores DNS automaticamente a você. Mas você pode alterá-los temporariamente para os IPs DNS públicos.

Alguns servidores DNS confiáveis que você pode experimentar são o Google Public DNS, Cloudflare1.1.1.1, Quad9 DNS, e Cisco OpenDNS.

Configurações de servidores DNS personalizados no Windows 10
Configurações de servidores DNS personalizados no Windows 10

5. Desabilite temporariamente o CDN do seu site

Às vezes, a questão também pode ser com sua rede de entrega de conteúdo (CDN). Se o servidor de origem de um site não for acessível, a maioria dos CDNs tentará servir a página web completa a partir do seu cache.

Mas a maioria dos CDNs não habilita este recurso por padrão, pois é complexo para armazenar ativos dinâmicos na maioria dos sites (por exemplo, o painel de controle do WordPress).

Configurando a regra da página 'Cache Tudo' em Cloudflare
Configurando a regra da página ‘Cache Tudo’ em Cloudflare

Uma maneira simples de solucionar problemas é desativar temporariamente seu CDN. Por exemplo, se você estiver usando o plugin gratuito CDN Enabler WordPress para vincular seus recursos do site às URLs CDN, então você pode desativar o plugin e testar a recarga do seu site.

O mesmo vale para o uso de qualquer outro plugin que você possa usar para conectar ao seu CDN (por exemplo, WP Rocket, Breeze, W3 Total Cache).

Se você não puder acessar o painel de controle do seu site, você pode desativar o plugin via SFTP, renomeando o nome da pasta do plugin.

Desativar todos os plugins via SFTP, renomeando o nome da pasta plugins
Desativar todos os plugins via SFTP, renomeando o nome da pasta plugins

CDNs como Cloudflare ou Sucuri que fornecem serviços de proxy completo têm firewalls extras entre seus servidores de borda e seu servidor de origem. Portanto, você pode encontrar erros HTTP 5xx com mais freqüência enquanto os utiliza. A maior parte deles armazenam os erros 5xx retornados por seu servidor de origem, por isso é fácil resolvê-los.

O plano gratuito do Cloudflare é propenso a vomitar um erro 5xx. Infelizmente, como é um serviço de proxy completo, não há uma maneira rápida de desativá-lo. Mas antes de culpar o Cloudflare por ele, saiba que o Cloudflare mostra duas variações do erro 504 Gateway Timeout.

Erro 504 Gateway Timeout no Cloudflare (Variação 1)

O Cloudflare mostrará uma tela de erro personalizada do 504 Gateway Timeout quando o servidor de origem do seu site responder com uma resposta padrão HTTP 504.

Tela de erro 504 personalizada do Cloudflare
Tela de erro 504 personalizada do Cloudflare

Aqui, a questão é do seu servidor web e não do Cloudflare. Você pode tentar resolvê-lo com as outras soluções mencionadas abaixo ou entrar em contato com o suporte do seu provedor de hospedagem para obter ajuda técnica.

Erro 504 Gateway Timeout no Cloudflare (Variação 2)

Se o Cloudflare causar o erro 504 Gateway Timeout, a tela de erro mencionará “cloudflare”, que é atualmente o nome padrão do servidor para todos os ativos do Cloudflare. Normalmente, a tela de erro aparecerá como abaixo:

Tela de erro para 504 Gateway Timeout causado pelo Cloudflare
Tela de erro para 504 Gateway Timeout causado pelo Cloudflare

Como o próprio Cloudflare não responde, você não verá aqui nenhuma tela de erro com a marca Cloudflare.

Muito provavelmente, o Cloudflare já está ciente do problema e já está trabalhando em uma correção. Você pode confirmar isto verificando a página da Web de Status do Sistema Cloudflare. Alternativamente, você pode entrar em contato com o suporte do Cloudflare para uma resolução mais rápida.

Verifique o status do sistema Cloudflare em cloudflarestatus.com
Verifique o status do sistema Cloudflare em cloudflarestatus.com

Erro 504 Gateway Timeout no Cloudflare devido a grandes carregamentos

O tamanho do seus uploads para seu site também pode ser um motivo para o timeout do servidor. O Cloudflare limita o tamanho do arquivo de upload (por pedido HTTP POST) a apenas 100 MB em ambos os planos Free e Pro.

Os limites de 'Tamanho Máximo de Carregamento' do Cloudflare para vários planos
Os limites de ‘Tamanho Máximo de Carregamento’ do Cloudflare para vários planos

A questão pode estar no lado do seu hosting ou com o Cloudflare. Você pode descobrir a causa exata, contornando o Cloudflare com seu arquivo DNS e tentando fazer o upload novamente.

Se você estiver usando o Cloudflare com WordPress, recomendo que você use seu plugin gratuito e exclua URLs críticas do cache (como o painel de controle do WordPress).

Você pode consultar o post detalhado da Kinsta sobre como configurar as configurações do Cloudflare para WordPress.

Leitura sugerida: Como configurar o Cloudflare APO para WordPress

6. Verifique problemas do servidor com sua hospedagem

Os problemas do servidor são uma das razões mais comuns para enfrentar um erro de 504 Gateway Timeout. Como a maioria dos sites WordPress são hospedados em servidores web Nginx ou Apache, isso significa que o Nginx ou Apache está esperando por uma resposta de alguma coisa e um tempo limite.

Muitos clientes vêm a Kinsta exatamente para este problema que estão enfrentando em outros hosts do WordPress. A conversa é mais ou menos assim:

Estamos recebendo cerca de 100k visitantes por mês com mais de 200k de vistas. Atualmente, estamos hospedando com ____ e experimentamos 504 erros constantemente devido à sobrecarga do servidor. Não gosto de como o ____ lidou com o problema, e também fomos avisados de que em breve teremos que mudar para seus planos dedicados, o que acredito não ser necessário.

Sites de alto tráfego e comércio eletrônico são mais propensos a receber 504 erros por causa da sobrecarga do servidor, pois geram muitos pedidos sem cache. No entanto, esta questão pode ocorrer em qualquer site, inclusive em blogs simples. Muitos hosts solicitarão que você atualize para um plano de alto nível para corrigir o problema, o que na maioria dos casos é desnecessário.

A Kinsta utiliza hospedeiros gerenciados pelo LXD e contêineres de software LXC orquestrados para cada site. Assim, cada site WordPress é alojado em seu próprio container isolado com acesso a todo o software necessário para executá-lo (Linux, Nginx, PHP, MySQL). Os recursos são 100% privados e não são compartilhados com nenhum outro site, nem mesmo com seus sites.

A maioria dos hosts WordPress que fornecem planos de hospedagem compartilhados não tem essa capacidade. Portanto, um site de alto tráfego hospedado no mesmo servidor que o seu pode causar um erro de 504 também.

Além de isolar cada site em seu contêiner, a Kinsta também projetou sua infraestrutura para lidar facilmente com milhares de conexões simultâneas. Kinsta até mesmo hospeda os bancos de dados MySQL no localhost, e não em um servidor remoto. Isto significa que não há latência entre as máquinas, o que resulta em consultas mais rápidas e menos chances de que o tempo de espera ocorra.

Muitos clientes que migram para Kinsta vêem enormes diminuições nos tempos gerais de carregamento.

Um aumento de 212,5% no desempenho após a mudança para C2.
Um aumento de 212,5% no desempenho após a mudança para C2.

Um servidor sobrecarregado não é a única causa de um timeout do servidor. Pode haver muitas outras razões para o erro 504:

Infraestrutura de servidor lento

O servidor que você usa para hospedar seu site WordPress pode não ter recursos suficientes para lidar com a carga. É como jogar um videogame moderno e com gráficos intensivos em um PC de uma década.

O servidor simplesmente desliga ao tentar servir o site. A única solução para este problema é atualizar para um servidor com melhor infraestrutura. Por este motivo, mesmo o plano mais básico de hospedagem de WordPress da Kinsta irá lidar com um site estático com tráfego médio.

Precisa de mais PHP Workers

Os PHP Workers são usados para executar o código em seu site WordPress. Um site de comércio eletrônico que recebe 50.000 visitantes por mês precisa de muito mais recursos do que um simples blog com a mesma quantidade de tráfego. Se todos os trabalhadores de PHP do servidor estiverem ocupados, eles criarão uma fila de espera.

Quando a fila fica muito grande, o servidor desconsidera pedidos antigos, o que pode fazer com que o servidor vomite um erro de gateway 504. Você pode perguntar a seu host sobre como aumentar seu número de trabalhadores PHP. Isto permitirá que seu site execute várias solicitações simultaneamente.

Questões de Firewall

O firewall do seu servidor pode ter alguns erros ou uma configuração inadequada. Talvez, algumas de suas regras impeçam o servidor de estabelecer uma conexão corretamente. Para saber se seu firewall é o culpado, você pode verificar os registros de erros do seu servidor.

Problemas de conectividade de rede

Problemas de conectividade entre o servidor proxy e o servidor web podem causar atrasos na resposta a solicitações HTTP. Se você usar um balanceador de carga, também pode haver problemas de conectividade de rede com ele.

Intervalos HTTP

Os timeouts HTTP podem ocorrer quando uma conexão entre o servidor web e o cliente é mantida aberta por muito tempo. Com sites WordPress, isto geralmente acontece quando se executa importações de WordPress. Uma maneira de resolver este problema é mudar para uma conexão de internet mais rápida.

Você também pode usar uma ferramenta com suporte para WP-CLI para executar os scripts diretamente no servidor, contornando inteiramente a conexão HTTP. Por exemplo, você pode usar o comando wp import WP-CLI para executar o plugin WordPress Importer diretamente através da interface de linha de comando.

Importante: Os erros 504 Gateway Timeout parecem similares aos erros 503 Service Unavailable ou erro 502 Bad Gateway. Mas todos eles são diferentes. Se você estiver com um erro 504 na Kinsta, abra um ticket de suporte para que seu problema seja corrigido imediatamente.

Para monitorar o tempo de inatividade do seu site por conta própria, você pode usar uma ferramenta como updown.io. Ela verificará o status do seu site (ou qualquer URL) periodicamente, enviando uma solicitação HTTP a ele. Você pode definir a freqüência de verificação de 15 segundos a 1 hora. Se seu site não responder corretamente, ele o notificará por e-mail ou SMS.

Monitore seu site facilmente com o updown.io
Monitore seu site facilmente com o updown.io

Você receberá uma quantidade generosa de créditos gratuitos com cada conta de updown.io, mas se você estiver procurando alternativas mais baratas, você pode conferir WebGazer ou UptimeRobot. Estas duas ferramentas o ajudarão a monitorar o tempo de atividade do seu site a cada 5 minutos, gratuitamente. Isso é decente o suficiente para a maioria dos proprietários de sites.

Painel de instrumentos de monitoramento do website WebGazer
Painel de instrumentos de monitoramento do site WebGazer

O monitoramento do seu site lhe dará uma idéia de quantas vezes ele está em baixo. Isto é especialmente útil se você estiver usando um provedor de hospedagem compartilhado. A maioria dos provedores de hospedagem de aplicativos, banco de dados e hospedagem gerenciada de WordPress (como a Kinsta) cuida disso automaticamente para você. Por isso, é sempre recomendável escolher um deles.

Para uma explicação detalhada, consulte o post da Kinsta sobre a importância da hospedagem gerenciada do WordPress.

7. Verifique spam, bots ou ataques DDoS

Os atacantes maliciosos podem levar seu servidor web a um rastejamento, enviando muitas solicitações, ou enviando solicitações de recursos intensivos. Se seu site estiver recebendo spam por bots ou passando por um ataque DDoS, isso pode sobrecarregar seu servidor e resultar em 504 erros de Gateway Timeout para muitos usuários genuínos.

Você pode olhar o tráfego e as análises do seu servidor para ver se você pode detectar qualquer padrão irregular no tráfego do site. Se você estiver usando Kinsta para hospedar seu site, você pode visualizar estes dados facilmente indo ao seu painel MyKinsta Analytics.

Análises de nível do site no MyKinsta.
Análises de nível do site no MyKinsta.

Comece sua investigação analisando os principais IPs dos clientes. Isso lhe dará uma idéia de quem está gerando o número máximo de solicitações, e de onde. Se seu servidor de repente usar uma enorme largura de banda ou atrair muito tráfego, então este relatório será super útil.

Os principais IPs do cliente são exibidos no painel de análises.
Os principais IPs do cliente são exibidos no painel de análises.

A seguir, você pode conferir o relatório de Análise de Cache. Aqui, você pode ver quantos pedidos estão contornando ou faltando o cache, ou sendo atendidos a partir do cache. Por razões de desempenho e estabilidade, você quer fazer o cache do maior número possível de solicitações, mas nem sempre é possível conseguir isso.

Por exemplo, os sites do WooCommerce geram uma série de pedidos sem cache de recursos como o carrinho de compras e o processo de checkout.

A tela 'Cache Analysis' em MyKinsta
A tela ‘Cache Analysis’ em MyKinsta

Finalmente, você pode usar um plugin de segurança para aumentar a segurança do seu site, detectando e bloqueando tráfego/IPs preocupantes. Você pode pedir a seu host que bloqueie também certos IPs.

Dependendo da extensão e escala do ataque, este poderia ser um processo interminável de colocação de IPs na lista negra, pois muitos atacantes mudam seus IPs e endereços proxy após serem bloqueados.

Nota: A Kinsta não permite que seus clientes instalem plugins de segurança WordPress, pois eles podem ter um enorme efeito sobre o desempenho do site, especialmente suas capacidades de escaneamento. Como a Kinsta usa balanceadores de carga com a plataforma Google Cloud, o bloqueio de IPs nem sempre funcionaria como pretendido.

Você pode usar soluções de segurança dedicadas como Cloudflare ou Sucuri para proteger seus sites contra ataques DDoS e bots de spam. Para mais informações, você pode conferir os artigos da Kinsta sobre como instalar o Cloudflare em seu site WordPress e como a Sucuri ajudou a deter um ataque DDoS em seus rastros.

8. Repare seu banco de dados do WordPress corrompido

Es vezes, um erro 504 Gateway Timeout pode ser devido a um banco de dados corrupto, especialmente em sites WordPress. Normalmente, isto se deve a tabelas ou arquivos de banco de dados corrompidos. Às vezes, também pode ser causado por um grave problema de segurança como seu site ou banco de dados sendo invadido.

O conserto de um banco de dados WordPress corrompido depende do problema. Plugins como o WP-DBManager facilitam o diagnóstico de problemas no banco de dados e o reparo dos mesmos. Recomendo que você leia o passo a passo detalhado da Kinsta sobre o reparo de problemas no banco de dados WordPress para começar.

9. Verifique os plugins e temas do seu site

Na maioria dos casos, os plugins e temas de terceiros não causam 504 erros. Mas há uma pequena chance de que eles possam causar timeouts no servidor, geralmente por enfileirar muitos pedidos não atendidos gerados pelo plugin/tema. Como isso prende muitos dos trabalhadores PHP do seu servidor, pode causar 504 erros.

Um grande exemplo desta edição é o WooCommerce, que é um plugin instalado para adicionar funcionalidade de comércio eletrônico aos sites WordPress.

A maneira mais simples de resolver este problema é desativando todos os plugins. Lembre-se, você não perderá nenhum dado se você simplesmente desativar um plugin.

Se você puder acessar seu painel de controle, você pode ir para a tela Plugins, selecionar Desativar no menu de ações em massa, marcar todos os plugins e, em seguida, pressionar o botão Aplicar. Isto irá desabilitar todos os seus plugins.

Desativação de todos os plugins do WordPress através do painel de administração do WP
Desativação de todos os plugins do WordPress através do painel de controle do WP

Se você não pode acessar sua área administrativa, então você pode desativar plugins via SFTP usando o método descrito anteriormente. Basta renomear o nome da pasta principal dos plugins para desabilitar todos os plugins em massa.

Uma vez desativados todos os plugins, verifique se seu site carrega corretamente. Se funcionar, então você deverá ativar cada plugin um a um, testando o site após habilitar cada plugin.

Finalmente, certifique-se de que seus plugins, temas e núcleo WordPress estejam atualizados. Além disso, certifique-se de que seu servidor esteja rodando a versão recomendada do PHP.

Se você sentir que isto é muito avassalador, você pode sempre pedir ajuda ao seu host. Kinsta usa a Kinsta APM e outras técnicas de solução de problemas para ajudar os clientes a reduzir o que plugin, query ou script pode causar o erro.

Nos piores cenários, como uma consulta ineficiente ou mau código em um plugin/tema, você pode trazer um desenvolvedor WordPress para corrigir o problema.

10. Verifique os registros de erros

A visualização dos registros de erros pode ser muito útil na resolução de problemas e na depuração de 504 erros em seu site WordPress. Isto pode ajudá-lo a reduzir rapidamente um problema em seu site, especialmente se for resultante de um plugin exigente em seu site.

Se você é um cliente Kinsta, pode facilmente ver os erros registrados no painel MyKinsta. Comece selecionando “Sites WordPress” no menu lateral, escolha o site que deseja examinar e selecione “Registros” para abrir a página de visualização de Registros.

Visualizando o arquivo error.log no painel de controle do MyKinsta.
Visualizando o arquivo error.log no painel de controle do MyKinsta.

Se seu host não tiver uma ferramenta de registro, então você pode ativar o modo de depuração do WordPress adicionando o seguinte código ao seu arquivo wp-config.php:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

A constante WP_DEBUG habilita ou desabilita o modo de depuração do WordPress. Ela possui duas constantes opcionais que podem ampliar seus recursos. A constante WP_DEBUG_LOG direciona todos os erros a serem salvos em um arquivo de debug.log dentro do diretório /wp-content/. Se você não vê este arquivo, você pode sempre criar um.

A constante WP_DEBUG_DISPLAY controla se os logs de debug aparecem na página HTML. Definindo isto como falso esconderá todos os erros, mas você pode revisar os erros mais tarde, pois você também definiu WP_DEBUG_LOG como verdadeiro.

Importante: Se você tiver o WP_DEBUG habilitado no ambiente Kinsta, ele encaminhará todos os erros para o arquivo de debug.log e não para o error.log no painel MyKinsta.

Você também pode baixar os arquivos brutos de log de erros do WordPress via SFTP. Normalmente, você pode encontrar logs de erros no diretório raiz do seu servidor em uma pasta chamada “logs”.

Acesso à pasta de registros de erros do WordPress via SFTP
Acesso à pasta de registros de erros do WordPress via SFTP

Os usuários Kinsta também podem ativar o modo de depuração do WordPress a partir do seu painel de controle MyKinsta. Para fazer isso, navegue até Sites > Ferramentas > Depuração do WordPress e clique no botão Ativar. Isto permitirá que você veja os erros e avisos PHP sem ter que habilitar o modo de debug via SSH ou SFTP.

Finalmente, você pode verificar os arquivos de log do servidor. Dependendo do servidor que você estiver usando para hospedar seu site WordPress, eles são comumente encontrados nesses locais:

  • Apache: /var/log/apache2/error.log/
  • Nginx: /var/log/nginx/error.log/

Você pode consultar a documentação relacionada ao registro de dados do Apache ou Nginx para obter mais informações.

11. Ajuste as configurações do Apache ou Nginx corretamente

Você pode editar seus arquivos de configuração do servidor para aumentar os limites de recursos para diretivas específicas. Isto pode ajudá-lo a resolver o erro 504 Gateway Timeout.

Para Apache Webservers

Primeiro, adicione o seguinte código ao seu httpd.conf:

TimeOut 600

Esta configuração define quanto tempo o servidor esperará por certos pedidos antes de marcá-lo como um problema de timeout da rede. Seu valor padrão é de 60 segundos (versão Apache 2.4).

Você só pode adicionar esta diretiva em seu arquivo httpd.conf, não em seu arquivo .htaccess. Como a maioria dos provedores de hospedagem compartilhada não permite que você modifique o arquivo httpd.conf, você pode tentar aumentar o valor da diretiva LimitRequestBody em seu arquivo .htaccess.

Então adicione a seguinte linha ao seu arquivo php.ini:

max_execution_time 300

O valor padrão da diretiva max_execution_time do PHP é de 30 segundos. O aumento permitirá que os scripts PHP do seu site sejam executados por mais tempo.

Para Webservers Nginx

Se você estiver rodando seus sites WordPress no Nginx + FastCGI Process Manager (PHP-FPM) ou usando o Nginx como proxy reverso para o Apache, você pode ajustar as configurações do servidor para ajudar a evitar erros de 504 Gateway Timeout.

Erro 504 Gateway Timeout no Nginx + FastCGI (PHP-FPM)

Primeiro, você deve editar seu arquivo de configuração do pool PHP-FPM. Você pode encontrá-lo no /etc/php7.4/fpm/pool.d/wwww.conf em seu servidor Nginx (o caminho exato pode variar com base na versão PHP). Alternativamente, você pode executar o seguinte comando em seu terminal para editar o arquivo de configuração do pool PHP-FPM:

sudo nano /etc/php/7.2/fpm/pool.d/www.conf

Em seguida, defina a seguinte diretiva:

request_terminate_timeout = 300

Depois disso, você deve editar seu arquivo php.ini. Você pode localizá-lo em /etc/php.ini. Abra o arquivo e adicione/mude o valor da diretiva max_execution_time para 300 segundos.

max_execution_time = 300

Finalmente, adicione o seguinte código ao bloco de localização do seu arquivo nginx.conf:

location ~ .php$ {
...
fastcgi_read_timeout 300;
}

Recarregar Nginx e PHP-FPM para que as mudanças entrem em vigor.

sudo service nginx reload
sudo service php7.4-fpm reload

O código exato para recarregar PHP-FPM variará com base na versão PHP instalada em seu servidor. Teste seu site para ver se ele corrigiu o problema.

Erro 504 Gateway Timeout no Nginx Proxy

Se você estiver usando o Nginx como servidor proxy reverso para o Apache, então você pode torná-lo mais indulgente em relação ao timeout do servidor adicionando as seguintes diretrizes ao seu arquivo nginx.conf:

proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;

Não se esqueça de recarregar o Nginx depois de fazer suas mudanças.

sudo service nginx reload

Outros erros de HTTP como 504 Gateway Timeout

Como mencionado anteriormente no artigo, há muitos outros erros do HTTP 5xx que são exatamente como o erro 504 Gateway Timeout. É por causa do fato de que todos eles acontecem no lado do servidor. Estes erros incluem:

Outros erros HTTP causados por problemas do lado do cliente, como o erro 404 Not Found, também são como o erro 504. Você pode consultar o guia detalhado de Kinsta e lista de códigos de status HTTP para obter mais informações.

Resumo

Seu site pode ser afetado pelo erro 504 Gateway Timeout devido a múltiplos motivos. Neste artigo, você aprendeu como solucioná-los a todos. Normalmente, estes erros são causados devido a problemas do lado do servidor, caso em que você pode chegar ao seu host e resolvê-los rapidamente.

Entretanto, você também deve entender que este erro pode ser causado por causa de plugins de terceiros, temas, serviços, consultas ineficientes a bancos de dados, ou uma combinação de dois ou mais destes. Se você estiver maximizando os recursos do seu servidor (por exemplo, trabalhadores de PHP), é recomendável otimizar seu site para o desempenho.

Se você descobrir que seu website ainda está em baixa, pode muito bem precisar atualizar seu plano de hospedagem ou o número de PHP trabalhadoresWorkers. Recomendo que você considere esta opção somente depois de ter esgotado todas as outras soluções descritas neste artigo.

Desde simples sites estáticos até complexos sites de comércio eletrônico e de membros, os planos de hospedagem da Kinsta são projetados para acomodar todos os tipos de sites. Os planos de hospedagem escaláveis da Kinsta são projetados para acomodar todos os tipos de sites. Para saber mais sobre nossa hospedagem na nuvem escalável, confira este artigo sobre as coisas mais importantes que você deve saber sobre a Kinsta!

Perdemos alguma coisa? Se você ainda estiver encontrando dificuldades para corrigir o erro 504 Gateway Timeout em seu site WordPress, deixe um comentário abaixo.

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.