Kenapa gejalanya bisa terikat ke satu ISP
Pertanyaan yang perlu diajukan ke pelanggan
Bandingkan header dari origin dan dari jaringan pelanggan
age: berapa detik objek sudah tersimpan di cache yang menyajikannya.etagdanlast-modified: penanda versi konten. Kalau berbeda dengan origin, berarti salinannya beda.cache-control: instruksi cache dari origin, misalnyamax-age.- Header khusus CDN, misalnya
cf-cache-statusdancf-raydi Cloudflare, ataux-cachedi beberapa CDN lain. Nama dan formatnya tergantung vendor.
--resolve, lalu ambil juga lewat jalur publik normal. Ganti contoh.com dan IP dengan milik situs yang dicek.
BASH
# Langsung ke origin, melewati CDN (ganti IP dengan IP origin)
curl -sv -o /dev/null --resolve contoh.com:443:203.0.113.10 https://contoh.com/halaman 2>&1 | grep -iE 'trying|connected to|^< '
# Lewat jalur publik normal (DNS dan CDN seperti pengunjung biasa)
curl -sv -o /dev/null https://contoh.com/halaman 2>&1 | grep -iE 'trying|connected to|^< 'curl.exe bawaan, meskipun grep tidak ada. Untuk Windows, cukup minta pelanggan menjalankan curl -sv -o NUL https://contoh.com/halaman lalu mengirim seluruh output-nya. Semua perintah ini read-only, aman dijalankan.
Baris Trying menunjukkan IP mana yang dihubungi. Ini sama pentingnya dengan header. Hasil dari jaringan pelanggan kira-kira seperti berikut (contoh format output, bukan kejadian nyata):
TEXT
* Trying 203.0.113.50:443...
* Connected to contoh.com (203.0.113.50) port 443
< HTTP/2 200
< date: Mon, 02 Nov 2026 10:00:00 GMT
< cache-control: public, max-age=14400
< age: 9800
< etag: "abc123"
< last-modified: Mon, 26 Oct 2026 08:00:00 GMT
< cf-cache-status: HIT
< cf-ray: 0123456789abcdef-CGKHIT, objek sudah tersimpan cukup lama, dan etag-nya bisa dicocokkan dengan hasil dari origin. Di Cloudflare, akhiran pada cf-ray biasanya menunjukkan kode lokasi PoP yang melayani request, jadi kita tahu node mana yang perlu dipersoalkan.
Membaca hasilnya dan memutuskan langkah
| Yang terlihat di jaringan pelanggan | Arti paling mungkin | Langkah |
|---|---|---|
IP di baris Trying bukan IP CDN atau masih IP server lama | Resolver ISP masih memegang record lama | Masalah DNS, purge CDN tidak membantu |
Header CDN ada, status HIT, etag atau last-modified lebih lama dari origin | PoP itu masih menyimpan salinan lama | Purge sendiri dulu, lalu tes ulang |
| Setelah purge, PoP yang sama tetap HIT dengan versi lama, PoP lain sudah baru | Purge tidak sampai atau tidak diterapkan di node itu | Eskalasi ke penyedia CDN |
Header khas CDN tidak ada, muncul via atau x-cache dari perangkat lain, situs masih HTTP | Ada proxy cache di jalur ISP | Bukan wewenang CDN, pertimbangkan pindah ke HTTPS |
| Header dari curl sudah sama dengan origin, tapi browser tetap lama | Cache browser atau service worker | Bersihkan data situs di browser, cek service worker |
?v=123 untuk memastikan versi terbaru keluar. Ini bisa membantu sebagai tes, tapi hasilnya tergantung cache key di CDN. Ada konfigurasi yang mengabaikan query string, sehingga hasilnya tetap HIT dari salinan lama. Jangan jadikan ini satu-satunya bukti.
Perhatikan juga cache-control dari origin. Kalau HTML dikirim dengan max-age yang panjang, CDN memang berhak menyimpannya selama itu, dan setiap update konten akan selalu butuh purge. Itu bukan bug CDN, melainkan konsekuensi aturan yang kita kirim sendiri. Menurutku, untuk halaman HTML yang sering berubah, umur cache yang lebih pendek biasanya lebih tenang daripada mengandalkan purge setiap kali.
Data yang dilampirkan saat eskalasi ke CDN
- URL lengkap yang bermasalah, termasuk path dan query string bila ada.
- Waktu kejadian dengan zona waktu yang jelas, idealnya dalam UTC.
- Output curl lengkap dari jaringan pelanggan, termasuk IP edge dan header identitas request seperti
cf-rayatau request ID sejenis dari vendor lain. - Output curl dari jaringan lain yang sudah menampilkan versi baru, sebagai pembanding.
- Header dari origin langsung, untuk membuktikan origin sudah menyajikan versi baru.
- Kapan purge dilakukan, metodenya (per URL, per tag, atau semua), dan hasilnya.
- Nama ISP dan perkiraan kota pelanggan, tanpa data pribadi yang tidak diperlukan.
Urutan yang bisa dibawa ke meja support
age, etag, dan status cache-nya. Kalau IP-nya salah, itu urusan DNS. Kalau PoP masih HIT dengan salinan lama, purge sendiri. Kalau setelah purge node yang sama masih bertahan, barulah eskalasi dengan bukti lengkap. Cara ini membuat purge jadi keputusan yang terukur, dan tiket ke CDN berisi data yang bisa langsung ditindaklanjuti.