Isso por vezes também pode pode ocorrer com serviços totalmente proxy, como o Cloudflare ou Sucuri, já que têm camadas intermédias extra como firewall. Na verdade, a maioria coloca os códigos de estado 500 em cache quando eles são devolvidos pelo servidor. Notamos que isso acontece extemporaneamente no plano gratuito do Cloudflare. Infelizmente, como o Cloudflare é um serviço proxy, não há qualquer forma de o desativar.

Não existe nada mais preocupante e frustrante do que abrir seu site WordPress e encontrar uma tela branca com um erro. Eis alguns dos problemas comuns que você já deve ter encontrado: Erros 502 bad gateway, a sempre popular tela branca da morte, ou o assustador erro ao estabelecer uma ligação à base de dados. Para muitos blogs e sites de comércio eletrônico, esses erros provocam uma perda de receitas de visitantes e clientes que saem imediatamente do website, incapazes de concluir suas compras. Hoje a gente vai falar do erro 504 gateway timeout e de algumas recomendações sobre como você pode corrigir isso no seu site WordPress. Leia abaixo o que provoca esse erro e o que você pode fazer para o evitar o seu surgimento no futuro.

O que é um Erro 504 Gateway Timeout?

Antes de falar particularmente do erro, é importante entender como eles surgem. Sempre que você inicia o navegador e visita um site, ele envia uma solicitação de volta para o servidor web em que está hospedado. O servidor web depois processa o pedido e envia os recursos solicitados, juntamente com aquilo que se designa por cabeçalho HTTP. Esse cabeçalho HTTP contém muitos códigos de estado HTTPpara comunicar se está tudo OK ou se existe algo de errado. Nem todos os códigos de estado HTTP são negativos. Por exemplo, um código de estado 200 significa que “tudo está OK”.

Existem muitos tipos diferentes de códigos de estado 500 (500, 501, 502, 503, 504, etc.), todos com significados ligeiramente diferentes. Eles indicam que o pedido foi aceite, mas que o servidor não foi capaz de o concluir. 

Nesse caso, um erro 504 gateway timeout significa que “o servidor, agindo como um gateway, ultrapassou o tempo limite de espera por uma resposta de outro servidor.” O código surge quando existem dois servidores envolvidos no processamento de um pedido, e o primeiro servidor ultrapassa o tempo limite quando aguarda a resposta do segundo servidor (servidor a montante) (RFC 7231, seção 6.6.5).

Erro de tempo limite do gateway 504 no navegador

Erro 504 gateway timeout no navegador

Variações do Erro 504 Gateway Timeout

Devido aos vários navegadores, servidores web e sistemas operativos, um erro 504 gateway timeout pode surgir de várias formas diferentes em inglês. Mas todos têm o mesmo significado. Abaixo encontra algumas das muitas variações diferentes que poderão surgir na web:

  • “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)
  • “504 Gateway Time-out – The server didn’t respond in time”
  • Uma tela em branco

Algumas empresas ainda têm páginas personalizadas para o erro 504 gateway timeout.

Github 504 error timeout

Github – Erro 504 timeout

Impacto dos Erros 504 no SEO

Ao contrário dos erros 503, que são utilizadas no modo de manutenção WordPress e falam para o Google voltar mais tarde, um erro 502 pode ter um impacto negativo no SEO se não for corrigido imediatamente. Se o seu site estiver apenas 10 minutos em baixo, e se ele é rastreado com elevada frequência, então o rastreador vai simplesmente assumir a página que se encontra em cache. Ou o Google pode nem ter tempo de fazer um novo rastreio, já que o website ficará rapidamente funcional. Nesse cenário, você não precisa de se preocupar.

Contudo, se o site ficar inativo por um longo período, por exemplo 6 horas, então o Google pode ver o erro 504 como um problema a nível local, que precisa de ser resolvido. Isso poderá afetar seus rankings. Se você está preocupado com a repetição de erros 504, você deve descobrir o porquê de estarem acontecendo. Algumas das soluções abaixo poderão ajudar você.

Como Corrigir o Erro 504 Gateway Timeout

Por onde deve começar a sua resolução de problemas se encontrar um erro 504 gateway timeout no seu website WordPress? Sem sabermos grande parte do contexto, pode ser frustrante e assustador escolher um ponto de partida. Tipicamente ele está associado a um problema de conectividade de rede e/ou problema com o servidor onde o site está hospedado. Contudo também pode ser um problema do cliente, ou mesmo de plugins externos. Então vamos ver esses dois lados. Confira as causas comuns e as formas de corrigir o erro 504 gateway timeout e recuperar rapidamente o bom funcionamento do site.

1. Tente Recarregar a Página

Um dos métodos mais fáceis, e dos primeiros que você deve efetuar quando encontra um erro 502 gateway timeout, é esperar aproximadamente um minuto e recarregar a página (F5 ou Ctrl + F5). É possível que o host ou servidor estejam sobrecarregados e o site possa ser capaz de regressar muito em breve. Enquanto você está esperando, pode também experimentar rapidamente com um navegador diferente, para excluir qualquer outro problema.

Outra coisa que pode fazer é colar o site em downforeveryoneorjustme.com. Esse website dirá para você se o site está em baixo ou se existe algum problema da sua parte. Uma ferramenta como essa verifica o código de status HTTP retornado pelo servidor. Se ele não for o código 200 falando que “Tudo está OK”, então indicará um problema.

 

downforeveryoneorjustme

downforeveryoneorjustme

2. Desative as Configurações de Proxy

Por vezes você pode encontrar um 504 se estiver usando um serviço de proxy. Isso é muito raro, ainda mais se for responsabilidade do cliente. No entanto, o proxy pode ter sido configurado sem você saber. Siga esses tutoriais sobre como desativar ou verificar se não existem configurações de proxy ativa:

 

Chrome proxy settings

Desativar as configurações de proxy do Chrome

3. Problema de DNS

Um erro 504 gateway timeout também pode ser provocado por um problema de DNS. Existem dois lados em relação a essa questão, a primeira do lado do servidor, por exemplo quando o domínio não está sendo associado ao IP correto. Se você acabou de migrar seu site WordPress para um novo host, é importante esperar o tempo necessário para que a propagação seja efetuada por completo, o que pode levar até 24 horas em alguns casos. Isso depende do valor TTL dos seus registros de DNS. Você pode usar uma ferramenta gratuita DNSMap para verificar e ver se seu DNS está propagado em todo o mundo.

Verificar a propagação do DNS

Verificar a propagação do DNS

O segundo é um problema de DNS no lado do cliente. Nesse caso, pode tentar eliminar o seu cache DNS local. É algo muito parecido com limpar o cache do navegador.
No Windows só precisa de abrir a Linha de Comando e digitar o seguinte:

ipconfig /flushdns

 

Command prompt - flush DNS

Linha de comando – Limpar o DNS

Você deve ver uma mensagem “Cache de resolução DNS limpa com sucesso” se tudo tiver corrido normalmente.

Para quem usa macOS, você pode digitar o seguinte no terminal:

dscacheutil -flushcache

Nota: Não tem qualquer mensagem de êxito em Mac.

E, por último, pode alterar temporariamente os seus servidores DNS. Por padrão, os servidores DNS são automaticamente atribuídos pelo seu ISP. Mas você pode alterar temporariamente esses para um servidor DNS público, como o do Google. Sim, tem gente que prefere usar o DNS público do Google a longo prazo por ser às vezes mais fiável.

4. Desativar temporariamente a CDN

Isso também pode ser um problema com sua rede de fornecimento de conteúdo(CDN). Se você estiver usando um provedor CDN externo, uma forma fácil de solucionar isso é simplesmente desativar temporariamente a CDN. Por exemplo, gostamos muito do plugin ativador de CDN gratuito. Se você o utilizar, pode simplesmente desativar o plugin e depois testar o seu site. Se não consegue aceder ao painel do seu site, só precisa fazer login no seu site via SFTP e renomear a pasta do plugin para cdn-enabler_old. Isso desativará temporariamente a ligação à CDN. O mesmo é válido para o WP Rocket ou qualquer outro plugin que pode ter associado à sua CDN.

 

Rename plugin folder temporarily

Renomeie temporariamente a pasta plugin

Isso por vezes também pode pode ocorrer com serviços totalmente proxy, como o Cloudflare ou Sucuri, já que têm camadas intermédias extra como firewall. Na verdade, a maioria coloca os códigos de estado 500 em cache quando eles são devolvidos pelo servidor. Notámos que isso acontece extemporaneamente no plano gratuito do Cloudflare. Infelizmente, como o Cloudflare é um serviço proxy, não há qualquer forma de o desativar.

No entanto, antes de você sair culpando o Cloudflare, é importante saber que existem dois tipos diferentes de erros 504 gateway timeout no Cloudflare, como mostrado abaixo:

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

Se você encontrar a seguinte tela, verá que isso é um problema da parte do Cloudflare, e deve entrar em contato com eles para obter ajuda. Ou verifique a sua página de estado. Muito provavelmente eles já sabem do problema e equipe está trabalhando nele.

504 gateway timeout no Cloudflare

504 gateway timeout no Cloudflare

502 Bad Gateway no Cloudflare (Variação 2)

Se encontrar a seguinte tela, esse é um problema com seu host do Wordpess (servidor de origem), se esse for o caso, deve consultar a razão #5 listada abaixo.

Erro 504 gateway timeout do Cloudflare no host

Erro 504 gateway timeout do Cloudflare no host

504 Gateway Timeout no Cloudflare com Uploads

O tamanho dos seus uploads pode ser outra razão para o surgimento de um timeout. Eles restringem o POST (uploads) a 100MB no seu plano gratuito. Ocasionalmente, contudo, temos encontrado clientes com problemas com arquivos ou imagens abaixo desse limite. Por vezes esse problema pode ser com seu host ou com o Cloudflare. Uma forma simples de determinar o local do problema é pular o Cloudflare com o seu arquivo de hosts DNS e tentar fazer seu upload novamente. Ou simplesmente desative temporariamente o Cloudflare.

Se você estiver usando o Cloudflare com WordPress, é recomendável usar o plugin gratuito e excluir importantes URLs do cache (como a sua área de admin WordPress).

5. Problema com o Servidor (Verifique Com o Seu Host)

Um problema no servidor é uma das razões mais comuns que faz com que os usuários encontrem erros 504 gateway timeout em seus sites WordPress. Para simplificar essa parte, o Nginx ou Apache ficam esperando uma resposta de algo e o tempo de espera acaba esgotando

Estamos recebendo cerca de 100.000 visitantes por mês com mais de 200 mil visualizações. Atualmente fazemos a hospedagem com ____ e temos encontrado erros 504 devido à sobrecarga do servidor. Eu não gosto de como ____ lidou com o problema e também fomos avisados de que vamos ter de passar para os seus planos dedicados em breve, o que creio ser desnecessário.

Os erros 504 ocorrem mais frequentemente em websites com elevado tráfego, e sites de comércio eletrônico como WooCommerce, que têm muitos pedidos que não podem ser colocados em cache, já que por vezes isso pode causar uma sobrecarga do servidor. Contudo, temos encontrado esses erros em todo o gênero de sites, até mesmo em blogs simples. Muitos hosts respondem dizendo apenas que você é obrigado a fazer o upgrade para um plano de nível elevado a fim de corrigir o problema. E apesar de isso poder corrigir a maioria dos erros 504 gateway timeout, e por vezes ser uma medida necessária, nem sempre é obrigatório.

 

Além de timeouts de servidor provocados por um servidor sobrecarregado, aqui ficam outras razões que levam um servidor a encontrar um erro 504:

  • Servidor lento: Pode ser que o servidor do seu site WordPress esteja simplesmente demasiado lento para responder ao pedido, gerando erros gateway.
  • Número de PHP workers insuficiente: Os PHP workers são usados para executar o código no seu site WordPress. Em sites exigentes, é muito possível que os PHP workers possam estar ocupados, criando uma fila quando isso acontece. Se a fila e a acumulação tiverem atingido o seu máximo, os pedidos antigos começam a ser ignorados. Você pode perguntar ao seu host se é possível aumentar o número de workers. Mais PHP workers por site permitem várias solicitações em execução simultânea.
  • Problemas de firewall: A firewall no seu servidor pode ter alguns erros, uma configuração inadequada ou regras que impeçam uma conexão correta.
  • Conectividade de rede: Se existirem problemas com a conexão de rede entre o servidor proxy e o servidor web, isso pode provocar atrasos na resposta à solicitação HTTP. Também poderão existir problemas de conectividade de rede com um balanceador de carga, se ele for utilizado.
  •  
  • Timeouts HTTP: Eles podem surgir quando a conexão entre seu navegador e o servidor web é mantida aberta durante muito tempo. Isso normalmente acontece quando são executadas Importações WordPress. Uma forma de resolver isso é mudar para uma ligação mais rápida à internet. Ou pode usar uma ferramenta com suporte para WP-CLI, como o plugin WordPress Importer, e executar a importação diretamente no servidor, pulando totalmente a conexão HTTP.

Se você está preocupado que isso aconteça futuramente no seu site, pode também utilizar uma ferramenta como a updown.io para monitorar e notificar você imediatamente, se os erros ocorrerem. Essas ferramentas enviam periodicamente uma solicitação HTTP HEAD para a URL que você quiser. Você pode simplesmente usar a sua homepage. A ferramenta permite definir as frequências de:

  • 15 segundos
  • 30 segundos
  • 1 minutos
  • 2 minutos
  • 5 minutos
  • 10 minutos

Irá enviar um email para você se e quando o site estiver em baixo. Abaixo você tem um exemplo.

 

Email notification of 504 error

Notificação de email do erro 501

6. Spam, Bots ou Ataque DDoS

É muito provável que o seu site esteja sendo vítima de spam perpetrado por bots ou alvo de um ataque DDoS. Por vezes isso pode resultar em pedidos que não conseguem ser guardados em cache, sobrecarregando o servidor, gerando erros 504 gateway timeout. Você pode ver os analytics do seu servidor e descobrir se existem padrões. Pode também pedir esses dados ao seu host. O primeiro relatório que recomendamos consultar é o top de IPs de clientes. Isso pode ser muito útil se o seu site está subitamente gerando muita banda larga ou sendo atingido por bots.

Métricas de segurança – top de IPs do cliente

Métricas de segurança – top de IPs do cliente

O segundo relatório recomendado está presente em pedidos & bots. Você pode rapidamente identificar o rácio entre os humanos vs rastreadores ou bots que estão visitando o seu site. Mas você precisa recordar que nem todos os bots são ruins. O GoogleBot é um exemplo de bot que não deverá bloquear já que ele rastreia o seu site para indexar o conteúdo em SERPs.

Peidos e bots

Peidos e bots

O terceiro relatório recomendado é a análise de cache. Aqui você pode ver quantas visitas estão pulando o cache, falhando o cache e os principais locais em que isso acontece no seu site. Por uma questão de desempenho e estabilidade, você quer o maior número possível de pedidos guardados em cache. Nem sempre isso é possível, já que sites como aqueles que correm o WooCommerce geram muitos pedidos não guardados em cache, sendo obrigados a isso para disponibilizarem funções como o carrinho de compras e o processo de pagamento, garantindo o seu funcionamento correto e sincronização.

Se você quer localizar e/ou identificar o tráfego/IPs que devem ser bloqueados no seu site, você pode usar um plugin de segurança WordPress como auxílio. 

7. Verifique Seus Plugins e Temas

Muitos poderão dizer que plugins externos ou temas não provocam erros 504 gateway timeout. E, na maioria dos casos, isso é verdade. Contudo, de acordo com a nossa experiência, um pedido lento não guardado em cache efetuado por um plugin pode resultar efetivamente em atrasos, já que isso implica um maior número de PHP workers. Quanto você atinge esse limite de PHP workers, a fila começa ignorando pedidos mais antigos, o que pode provoca erros 504. Isso não deve ser confundido com erros 502 gateway, em que ele ocorre depois de um tempo limite de 60 segundos na fila.

Um dos métodos para solucionar o problema é desativar todos os seus plugins. Você precisa de ter em consideração que não vai perder quaisquer dados se desativar um plugin. Se ainda conseguir ter acesso ao seu admin, conseguirá fazer isso rapidamente ao navegar até “Plugins” e selecionar “Desativar” no menu de ações em massa. Isso irá desativar todos os seus plugins.

 

Deactivate all plugins

Desative todos os plugins

Se isso corrigir o problema, encontrou o culpado. Comece por desativar individualmente, recarregando o site após cada ativação. Quando encontrar novamente o erro 502 gateway, você encontrou o plugin que está dando erro. Depois você pode entrar em contato com o programador do plugin ou publicar um ticket de suporte no repositório do WordPress.

Se não conseguir ter acesso ao admin, entre no seu servidor via FTP e renomeie sua pasta de plugins para algo como plugins_old. Depois verifique seu site novamente. Se ele funcionar, então precisará de testar cada plugin, um por um. Renomeie a pasta novamente para “plugins” e, em seguida, renomeie individualmente cada pasta de plugins dentro dele, até encontrar o responsável. Pode tentar replicar isso previamente em um site staging.

Rename plugin folder

Renomeie a pasta de plugins

Garanta que os seus plugins, temas e core do WordPress estão atualizados. E verifique se está executando uma versão suportada do PHP. Pode sempre contatar seu host para ter assistência. 

Se for uma consulta eficiente ou um código inválido em um plug-in, talvez seja necessário trazer um desenvolvedor do WordPress para corrigir o problema.

8. Verifique os Registros

Também deve aproveitar os seus registros de erros. Isto pode ajudar você a descobrir rapidamente o problema, especialmente se for provocado por um plugin no seu site.

Se seu host não tem uma ferramenta de registro, você pode adicionar o seguinte código ao seu wp.config.php para habilitar o registro:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
wordpress error logs folder sftp

Pasta de logs de erros do WordPress SFTP

Também pode verificar os arquivos de registro do Apache e NGINX, que normalmente estão aqui:

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

9. Configurações Nginx

Se você estiver gerenciando seu próprio servidor e sites WordPress em Nginx + FastCGI (php-fpm), ou a utilizar o Nginx como proxy para Apache, existem algumas configurações que pode alterar para ajudar a evitar erros 504 gateway timeout.

Erro 504 Gateway Timeout no Nginx + FastCGI (php-fpm)

Se estiver usando o Nginx com FastCGI (php-fpm), então precisará primeiro de fazer uma alteração no seu arquivo PHP-FPM. Navegue até o arquivo /etc/php5/fpm/pool.d/www.conf (pode variar de acordo com a versão do PHP). Defina a seguinte diretiva:

request_terminate_timeout = 300

Depois deve alterar o seu arquivo php.ini, que normalmente está localizado em /etc/php.ini. Pesquise a diretiva max_execution_time. Aumente o valor para 300, caso a diretiva não esteja presente, então adicione:

max_execution_time = 300

Depois terá de modificar o arquivo nginx.conf. Adicione o seguinte dentro da sua configuração virtual do host Nginx.

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

Depois simplesmente recarregue o Nginx, assim como o PHP-FPM.

service nginx reload
service php5-fpm reload

Erro 504 Gateway Timeout no Proxy Nginx

Se você estiver usando o Nginx como proxy para Apache, adicione o seguinte ao arquivo nginx.conf:

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

Depois simplesmente recarregue o Nginx.

service nginx reload