Kenapa 522 Muncul & Cara Cepat Memperbaikinya
Baru saja buka website langsung dapat pesan “Error 522: Connection timed out”? Jangan panik—ini bukan kesalahan kode, tapi sinyal bahwa Cloudflare tidak bisa menjawab “tepukan” dari server asalmu. Sesuai laporan Cloudflare Inc., 68% kasus 522 berasal dari tiga hal: server kelelahan, IP salah, atau firewall memblokir. Artikel ini akan bongkar satu per satu plus command yang bisa kamu salin-paste langsung.
Kalau kamu pernah merasa “tadi pagi normal, tiba-tiba down”, kamu nggak sendiri. Saya alami sendiri saat traffic naik 5× karena postingan viral; 10 menit setelah uptime monitoring berbunyi, 522 muncul. Ternyata KeepAlive mati & IP baru setelah migrate belum di-update di dashboard Cloudflare. Setelah ikut 3 langkah di bawah, normal lagi dalam 4 menit. Penasaran? Simak terus.
Penyebab Error 522 yang Sering Diabaikan
Error 522 bukan bug di Cloudflare, tapi hasil gagalnya “handshake” TCP dalam 15 detik. Seringkali kita sibuk optimalisasi frontend, lupa cek backend. Berikut daftar lengkap berdasarkan dokumentasi resmi Cloudflare plus temuan di lapangan:
Server Overload & Resource Limit
CPU >80% atau entri PHP-FPM menumpuk membuat Apache/NGINX nggak sempat membalas SYN-ACK. Di shared hosting, kamu bisa cek melalui hPanel > Usage; bila donut merah, naikkan memory atau kurangi plugin. Di VPS, ketik:
top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1
Kalau hasil >80, bersihkan cron atau scale-up.
Firewall Menyaring IP Cloudflare
CSF, Fail2ban, atau bahkan iptables kadang label IP Cloudflare sebagai “scanner”. Cloudflare punya daftar IP resmi yang harus di-whitelist. Satu baris CSF cukup:
csf -a 173.245.48.0/20
Ulangi untuk semua subnet agar request edge location lolos.
3 Langkah Solusi Error 522 (Dengan Command)
Cukup ingat urutan S-D-K: Server – DNS – KeepAlive. Ikuti runut ini biar nggak bolak-balik.
1. Periksa Kesehatan Server & Aktifkan KeepAlive
- Pastikan service web hidup:
sudo systemctl status apache2 #atau nginx
- Cek statistik beban:
uptime && free -h
- Buka konfigurasi Apache (
/etc/apache2/apache2.conf) atau NGINX (/etc/nginx/nginx.conf), pastikan ada baris:KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5
- Reload layanan:
sudo systemctl reload apache2 #atau nginx
2. Sinkronkan A Record IP di Cloudflare
- Di terminal ketik:
dig +short yourdomain.com
Catat IP yang keluar.
- Masuk Cloudflare > DNS, bandingkan IPv4 di sana. Beda? Klik Edit, masukkan IP baru, Save.
- Tunggu propagasi (maks. 5 menit kalau TTL 300 dulu).
3. Whitelist IP Cloudflare & Matikan Rate-Limit Agresif
- Unduh daftar IP terbaru:
curl https://www.cloudflare.com/ips-v4 -o cf-ip.txt
- Loop masukkan ke firewall (contoh UFW):
while read ip; do ufw allow from $ip; done < cf-ip.txt
- Restart fail2ban kalau pakai:
sudo systemctl restart fail2ban
- Clear cache Cloudflare via dash atau API:
curl -X POST "https://api.cloudflare.com/client/v4/zones/ZONE_ID/purge_cache" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" --data '{FAQ
References