Erro 521 e 522 do Cloudflare: o servidor de origem não responde
· 6 min de leitura
O que esses erros significam
Quando um site passa pelo Cloudflare, os visitantes falam com o Cloudflare e o Cloudflare fala com o seu servidor, o chamado “servidor de origem”. Os códigos 521 e 522 são próprios do Cloudflare e dizem a mesma coisa: o Cloudflare funciona, seu servidor não responde.
- 521 Web server is down: o Cloudflare chegou ao seu servidor, mas ele recusou a conexão na porta 443 ou 80. Ninguém está escutando ali, ou um firewall recusa.
- 522 Connection timed out: o Cloudflare não obteve resposta à tentativa de conexão: servidor desligado ou saturado, ou um firewall que descarta os pacotes sem avisar.
Um 521 é, portanto, um ERR_CONNECTION_REFUSED visto pelo Cloudflare em vez de pelo navegador; um 522, um timeout de conexão. Nenhum dos dois é uma falha do Cloudflare, e desativar o proxy não resolve nada: sem o Cloudflare, os visitantes veriam a conexão recusada diretamente. Não confunda com um 502 Bad Gateway, em que o servidor web responde mas a aplicação atrás dele está parada, nem com ERR_TOO_MANY_REDIRECTS, o loop de redirecionamentos que nasce muitas vezes do modo SSL “Flexible”. Ainda não sabe o que está errado? Comece pelo guia site fora do ar.
Causas frequentes
- O servidor web está parado. O nginx ou o Apache travou ou não subiu de novo depois de uma alteração. Resultado: 521.
- O firewall bloqueia os endereços do Cloudflare. O Cloudflare se conecta a partir das próprias faixas de IP. Um firewall restritivo, ou uma ferramenta contra ataques que baniu o Cloudflare depois de uma rajada de pedidos, dá 521 (reject) ou 522 (drop).
- O servidor está desligado ou inacessível. Falha, reinício, manutenção programada do provedor, interface de rede caída: 522.
- Sobrecarga. O servidor aceita as conexões devagar demais: 522 intermitente, sobretudo com muito tráfego.
- Porta ou modo SSL errados. No modo “Full” ou “Full (strict)”, o Cloudflare se conecta à 443; se o servidor escuta só na 80, dá 521. No “Flexible”, o Cloudflare se conecta à 80.
- O registro DNS no Cloudflare aponta para um IP antigo. Depois de uma mudança de servidor, a máquina antiga está desligada: 522.
Se você é visitante
Não há o que fazer: o Cloudflare entrega a página de erro de um site cujo servidor não responde. Tente de novo mais tarde.
Se o site é seu: verifique primeiro
Abra o website down checker: ele mostra o código 521 ou 522 de fora. Depois pule o Cloudflare e fale com o servidor pelo IP dele, com o cabeçalho Host:
# o servidor de origem responde diretamente?
curl -sI https://203.0.113.10/ -H 'Host: example.com' -k --max-time 10
curl -sI http://203.0.113.10/ -H 'Host: example.com' --max-time 10
# no servidor: o IP real, para comparar com o DNS
hostname -I
Se o curl responde, o servidor está bem e o bloqueio está no caminho Cloudflare → servidor (firewall, IP, porta). Se ele também falha, entre por SSH:
systemctl status nginx
systemctl status apache2
sudo ss -tlnp | grep -E ':80 |:443 '
sudo ufw status verbose
sudo fail2ban-client status
uptime
Soluções no seu servidor
1. Reiniciar o servidor web
sudo nginx -t && sudo systemctl restart nginx
sudo apachectl configtest && sudo systemctl restart apache2
sudo journalctl -u nginx -n 50
Se não sobe, o log diz por quê: erro de sintaxe, certificado inexistente, porta ocupada, disco cheio (df -h).
2. Liberar as faixas de IP do Cloudflare
O Cloudflare publica as próprias faixas de endereços. Seu firewall precisa aceitá-las nas portas 80 e 443:
# ufw: uma regra por faixa
for ip in $(curl -s https://www.cloudflare.com/ips-v4) $(curl -s https://www.cloudflare.com/ips-v6); do
sudo ufw allow from "$ip" to any port 80,443 proto tcp
done
Se o fail2ban baniu um endereço do Cloudflare, retire o banimento e faça-o ler o IP real do visitante (cabeçalho CF-Connecting-IP). Verifique também o grupo de segurança do provedor de nuvem.
3. Fazer porta e modo SSL baterem
No Cloudflare, seção SSL/TLS: com “Full (strict)”, seu servidor precisa apresentar na 443 um certificado válido para o domínio (Let’s Encrypt com certbot, ou um certificado de origem do Cloudflare). Com “Full”, basta um autoassinado. Com “Flexible”, o servidor precisa responder em HTTP na 80 sem redirecionar. A escolha mais segura: 80 e 443 com certificado válido e “Full (strict)”.
sudo ss -tlnp | grep ':443 '
echo | openssl s_client -connect 203.0.113.10:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates -subject
4. Sobrecarga
Se o uptime mostra carga alta e os 522 vão e voltam, procure o que ocupa o servidor: top, workers do PHP-FPM saturados (server reached pm.max_children no log), uma consulta lenta, bots. Aumente os workers se a memória permitir e deixe o Cloudflare servir os arquivos estáticos.
5. Corrigir o registro DNS no Cloudflare
No painel do Cloudflare, aba DNS: o registro A (e AAAA) de example.com e de www precisa apontar para o IP atual do servidor. Remova um AAAA com um endereço IPv6 que o servidor não tem mais.
Se o problema está na sua hospedagem
Em uma hospedagem compartilhada você não pode reiniciar o servidor web nem abrir o firewall. Envie isto:
Prezados, meu site example.com passa pelo Cloudflare e está devolvendo “Error 522” (timeout de conexão com o servidor de origem) desde aproximadamente 15h (UTC). O registro DNS aponta para 203.0.113.10, o IP da minha hospedagem. Não alterei nada do meu lado. O servidor web dessa máquina está parado, ou o firewall está bloqueando as faixas do Cloudflare?
Para não acontecer de novo
Atrás do Cloudflare, um servidor parado passa despercebido até a página de erro. Uma verificação de fora vê o 521 ou o 522 assim que ele aparece; no seu servidor, o agente de servidor avisa quando o nginx para, a carga sobe ou o disco enche.
Fora do ar? Nós resolvemos. No seu servidor ou em uma hospedagem compartilhada com acesso SSH, o Quick Fix, o reparo automático a preço fixo, reinicia o serviço parado se o teste da configuração dele passar, 24 horas por dia, inclusive nos fins de semana; o Deep Fix cuida do firewall, do modo SSL ou da sobrecarga, em blocos de 15 minutos; a estimativa é o valor máximo.
E agora
Verifique de fora
O site está fora do ar para todos ou só para você, e o que o servidor responde? Grátis, sem cadastro.
Verificador de site fora do arFora do ar? Nós resolvemos.
No seu servidor ou em uma hospedagem compartilhada com acesso SSH: Quick Fix a preço fixo para as causas mais comuns, Deep Fix cobrado em blocos de 15 minutos para todo o resto, 24/7. Preço visível antes do pedido.
Pedir um reparoOutros guias
- Site fora do ar: o que fazer nos primeiros 15 minutos
- Servidor fora do ar: o que verificar e em que ordem
- Erro 500 Internal Server Error: achar a causa nos logs e colocar o site de volta no ar
- Erro 502 Bad Gateway: achar a causa e resolver
- Erro 503: sobrecarga, manutenção ou limite da hospedagem?
- Erro 504 Gateway Timeout: achar o que está lento
- DNS_PROBE_FINISHED_NXDOMAIN: o domínio não responde mais
- ERR_CONNECTION_REFUSED: o servidor recusa a conexão
- ERR_CONNECTION_TIMED_OUT: o servidor não responde a tempo
- O que significa “Sua conexão não é particular” e como resolver
- ERR_SSL_PROTOCOL_ERROR: a conexão segura falha antes do certificado
- ERR_TOO_MANY_REDIRECTS: achar o loop de redirecionamentos e fechá-lo
- Erro 403 Forbidden: o que bloqueia o acesso ao seu site
- ERR_NAME_NOT_RESOLVED: o nome do site não é encontrado
- “Erro ao estabelecer conexão com o banco de dados” no WordPress: causa e solução