Erro 500 no Cloudflare: é do seu servidor ou da CDN? Como descobrir

Um erro 500 num site que usa Cloudflare quase sempre vem do seu servidor de origem, não do Cloudflare. E há uma forma de confirmar isso em um segundo: olhe o código-fonte da página de erro. Se o HTML contiver a palavra cloudflare ou cloudflare-nginx, o erro foi gerado pelo Cloudflare, e é com o suporte deles que você precisa falar. Se não contiver, o erro veio do seu servidor, passou pelo Cloudflare sem alteração, e quem resolve é a sua hospedagem.

Essa única verificação evita o desperdício mais comum nessa situação: passar a tarde mexendo em configurações do Cloudflare quando o problema é um erro de PHP no servidor — ou o contrário.

Resposta rápida — de quem é o erro?

Abra o código-fonte da página de erro (Ctrl+U) e procure pela palavra cloudflare.

EncontrouO Cloudflare gerou o erro. Fale com o suporte deles, com o valor do cf-ray em mãos
Não encontrouFoi o seu servidor de origem. O Cloudflare apenas repassou — verifique os logs de erro ou fale com a sua hospedagem

Na prática, o segundo caso é bem mais frequente. E vale saber: o 500 é um código HTTP real, diferente da faixa 520-527, que é criação do próprio Cloudflare.

Por que o 500 é diferente dos outros erros 5xx do Cloudflare

É aqui que mora a maior parte da confusão, e vale ser preciso.

O Cloudflare tem uma faixa própria de erros — 520 a 527 — para problemas que ele encontra ao tentar alcançar o seu servidor. Esses códigos foram inventados por eles e só aparecem em sites que passam pelo proxy. Um 521 significa que a conexão foi recusada; um 520, que a resposta não pôde ser interpretada.

O 500 não é um desses. Ele é um código de status HTTP padrão, que qualquer servidor web pode retornar, definido na especificação do protocolo muito antes de o Cloudflare existir. Quando o seu servidor devolve um 500, o trabalho do Cloudflare é simplesmente repassá-lo ao visitante — sem alteração.

O modelo mental fica assim:

O que você vê Quem gerou Com quem falar
500 sem “cloudflare” no HTML Seu servidor de origem Sua hospedagem
500 com “cloudflare” ou “cloudflare-nginx” no HTML A borda do Cloudflare Suporte do Cloudflare
520–527 Cloudflare, relatando um problema ao alcançar a origem Sua hospedagem — o problema é da origem
502 / 504 com marca do Cloudflare Pode ser dos dois — faça a mesma verificação Depende do teste acima

Vale notar que o cloudflare-nginx que aparece nessas mensagens é uma referência ao Nginx usado como proxy reverso pelo Cloudflare — o mesmo detalhe que explicamos no guia do erro 502 Bad Gateway.

O diagnóstico mais rápido: pausar o Cloudflare

Se a verificação no código-fonte não for conclusiva, tire o Cloudflare do caminho e veja o que o seu servidor faz sozinho.

Opção 1 — pausar o Cloudflare. No painel do Cloudflare, na página Overview do seu domínio, use Pause Cloudflare on Site. Isso interrompe o proxy sem mexer nos seus registros de DNS.

Opção 2 — nuvem cinza. Em DNS → Records, clique na nuvem laranja ao lado do registro A para deixá-la cinza. O tráfego passa a ir direto para a origem.

De qualquer forma, espere um minuto e recarregue:

  • Continua com erro 500? O problema é inteiramente do seu servidor. O Cloudflare nunca esteve envolvido.
  • O site voltou? Então o Cloudflare faz parte do problema — provavelmente um Worker, uma Page Rule ou uma regra de transformação interferindo. Veja a seção abaixo.

Reative o proxy quando terminar. Deixá-lo desligado expõe o IP da sua origem e desativa a proteção do Cloudflare.

Causa 1: a origem está gerando o erro 500

É a maioria esmagadora dos casos, e o Cloudflare é apenas o mensageiro.

O caso mais comum, nomeado pela própria documentação do Cloudflare, é o “Error establishing a database connection” — um site WordPress cujas credenciais de banco estão erradas ou cujo MySQL não responde. Ele chega ao visitante como um 500 genérico.

Além dele, as causas habituais do lado da origem:

  • Erro fatal de PHP — falha em plugin, tema ou script
  • .htaccess corrompido — uma diretiva inválida basta
  • Limite de memória ou tempo de execução do PHP esgotado
  • Permissões de arquivo incorretas
  • Backend falhando atrás do servidor web

O diagnóstico de todas elas é o mesmo, e não está no painel do Cloudflare: leia os logs de erro da sua origem. Nosso guia sobre o HTTP erro 500 percorre todas as soluções em ordem.

Causa 2: um Worker do Cloudflare está gerando o erro

Se pausar o Cloudflare resolveu, é aqui que se olha primeiro.

Um Worker é código JavaScript rodando na borda do Cloudflare. Quando ele lança uma exceção não tratada ou ultrapassa o limite de CPU, o visitante recebe um 500 — mesmo com o seu servidor perfeitamente saudável. Esse é um 500 genuinamente do lado do Cloudflare, e é invisível a partir da sua origem.

Onde olhar: a seção Workers do painel tem logs em tempo real. Procure por exceções de JavaScript e erros de limite de CPU. Se um Worker for a causa, desativar a rota dele temporariamente confirma na hora.

Dois suspeitos relacionados, se você não usa Workers:

  • Page Rules e regras de transformação que reescrevem requisições de um jeito que a sua origem não entende
  • Cloudflare Access ou regras de WAF bloqueando legitimamente, mas de forma confusa

Causa 3: uma indisponibilidade do Cloudflare

Raro, mas real — e vale descartar antes de qualquer outra coisa, porque não há nada a corrigir do seu lado.

Durante um incidente grande do Cloudflare, sites retornam erro 500 em massa, e o painel e a API deles também costumam falhar. O sinal é a escala: se o seu site está fora e outros sites sem relação também estão e você não consegue entrar no painel do Cloudflare, não é a sua configuração.

Consulte a página de status do Cloudflare antes de tudo, se o erro apareceu de repente sem você mexer em nada. Se houver incidente listado, a única ação é aguardar a correção deles.

Reúna isto antes de abrir chamado

Seja com o Cloudflare ou com a sua hospedagem, três informações fazem a diferença entre uma resposta útil e uma rodada de sugestões genéricas:

O valor do cf-ray. Toda requisição que passa pelo Cloudflare recebe um identificador único, visível nos cabeçalhos de resposta e, muitas vezes, na própria página de erro. É com ele que o Cloudflare localiza a transação exata nos logs.

A saída de /cdn-cgi/trace. Acrescente ao seu domínio — seusite.com.br/cdn-cgi/trace — e você recebe o data center que atendeu, o seu IP e detalhes da conexão. É um endpoint público, não há nada sensível ali.

A URL completa onde o erro acontece, e se ele é constante ou intermitente.

Se o erro for da origem, a sua hospedagem vai querer o horário exato no lugar, para cruzar com o log do servidor.

Constante ou intermitente?

O padrão reduz as possibilidades antes de qualquer verificação:

Padrão Causa mais provável
Toda requisição, todo visitante Erro fatal na origem, ou falha de conexão com o banco de dados
Uma URL ou endpoint específico Falha naquele trecho de código, ou um Worker roteado para ele
Intermitente, pior sob carga Origem esgotando memória ou atingindo limite de processos
Começou logo após uma alteração O que mudou — um plugin, um deploy, um Worker, uma Page Rule
Muitos sites sem relação também fora Incidente do Cloudflare — consulte a página de status
Quando o erro é da origem, o Cloudflare não resolve

A maioria dos erros 500 atrás do Cloudflare vem do seu servidor — e é ali que a resposta está. Na Homehost você tem acesso completo aos logs de erro, servidor no Brasil, CloudLinux isolando cada conta, backup automático e suporte técnico em português que lê o log com você. A partir de R$ 7,90/mês.

Ver planos de hospedagem

Perguntas frequentes

O erro 500 no Cloudflare é culpa do meu servidor ou do Cloudflare?
Quase sempre do seu servidor. Diferente dos códigos 520 a 527, que são criação do Cloudflare, o 500 é um status HTTP padrão que a sua origem pode retornar e o Cloudflare apenas repassa. Para confirmar, veja o código-fonte da página: se o HTML contiver a palavra cloudflare ou cloudflare-nginx, foi o Cloudflare que gerou. Se não, foi a sua origem.

Como saber se o erro 500 veio do Cloudflare ou da minha hospedagem?
Duas verificações. Primeiro, procure pela palavra cloudflare no código-fonte da página de erro. Segundo, pause o Cloudflare ou deixe o registro de DNS com a nuvem cinza e recarregue: se o erro continuar com o Cloudflare fora do caminho, é inteiramente do seu servidor.

Qual a diferença entre o erro 500 e o erro 521 do Cloudflare?
O 500 é um código HTTP padrão, normalmente gerado pela sua origem e repassado pelo Cloudflare. O 521 é um código específico do Cloudflare e significa que ele não conseguiu se conectar à sua origem, porque a conexão foi recusada. O 500 quer dizer que o servidor respondeu com erro; o 521, que ele não respondeu.

Um Worker do Cloudflare pode causar erro 500?
Pode. Um Worker que lança uma exceção JavaScript não tratada ou ultrapassa o limite de CPU retorna 500 ao visitante mesmo com a origem funcionando normalmente. Verifique os logs de Workers no painel do Cloudflare e desative a rota temporariamente para confirmar.

Pausar o Cloudflare resolve o erro 500?
Só se o Cloudflare for a causa, o que é a minoria dos casos. Pausar é um diagnóstico, não uma solução: se o site funciona com o Cloudflare pausado, olhe Workers, Page Rules e regras de WAF. Se continuar com erro 500, o problema é inteiramente da origem.

O que o suporte do Cloudflare precisa saber?
O valor do cf-ray da resposta com erro, a saída de seusite.com.br/cdn-cgi/trace e a URL completa onde o erro acontece. Vale saber que eles só investigam se o erro tiver sido gerado pelo Cloudflare — se veio da origem, vão encaminhar você para a sua hospedagem.

Uma queda do Cloudflare pode causar erros 500 no meu site?
Pode, embora seja incomum. Durante incidentes grandes, muitos sites sem relação retornam 500 e o próprio painel do Cloudflare costuma falhar. Se o seu site parou sem você mexer em nada e outros sites também estão afetados, consulte a página de status do Cloudflare antes de investigar a sua configuração.

Veja também

O erro 500 faz parte da família 5xx dos códigos de status HTTP. Veja também os primos que aparecem atrás de CDN: 502 Bad Gateway, 503 Serviço Indisponível e 504 Gateway Timeout. Se quiser entender melhor o papel de uma CDN, veja o que é CDN e Cloudflare.

Conclusão

Com um erro 500 atrás do Cloudflare, a pergunta útil não é “como resolvo”, e sim “de quem é o erro” — porque as duas respostas levam a lugares completamente diferentes. Procure a palavra cloudflare no código-fonte: se estiver lá, a borda do Cloudflare gerou o erro e o caminho é o suporte deles; se não estiver, a sua origem gerou e o Cloudflare apenas entregou a mensagem. Na prática é o segundo caso na maior parte das vezes, o que significa que a resposta está no seu log de erro — não no painel do Cloudflare. Pause o proxy se precisar confirmar, junte o cf-ray e a saída do /cdn-cgi/trace antes de abrir qualquer chamado, e cheque a página de status deles primeiro se o site caiu sem você ter tocado em nada.

Este artigo foi útil?

Obrigado pela resposta!
Picture of Gustavo Gallas

Gustavo Gallas

Analista de sistemas, formado pela PUC-Rio. Programador, gestor de redes e diretor da empresa Homehost. Pai do Bóris, seu pet de estimação. Gosta de rock'n'roll, cerveja artesanal e de escrever sobre assuntos técnicos.

Contato: gustavo.blog@homehost.com.br

Ganhe 30% OFF

Indique seu nome e e-mail,e ganhe um cupom de desconto de 30% para sempre na Homehost!