Cloudflare Cache Temizleme: Adım Adım Rehber ve En İyi Uygulamalar
Cloudflare üzerinden önbelleği (cache) etkili bir şekilde temizlemek, güncel içerik sunmak ve performans sorunlarını çözmek için izlenmesi gereken adımları ve otomasyon örneklerini ayrıntılı olarak anlatan bir rehber.
Caner Serbest
Sistem ve Altyapı
6 dk okuma
Cloudflare Cache Temizleme: Adım Adım Rehber ve En İyi Uygulamalar
İçindekiler
- Giriş
- Cloudflare Cache Nasıl Çalışır?
- Neden Cache Temizlenir?
- Cache Temizleme Yöntemleri
- 4.1. Kontrol Paneli Üzerinden “Purge Everything”
- 4.2. URL Bazlı Temizleme
- 4.3. Tag (Etiket) Bazlı Temizleme
- 4.4. API Kullanarak Temizleme
- 4.5. CLI / HTTPie ile Otomasyon
- Otomasyon ve Süreklilik
- En İyi Uygulamalar
- Sık Karşılaşılan Sorunlar ve Çözüm Önerileri
- Sonuç
1. Giriş
Web sitelerinin yanıt süresini kısaltmak ve bant genişliği maliyetlerini azaltmak amacıyla Cloudflare, statik dosyaları ve sık kullanılan dinamik sayfaları edge sunucularında önbelleğe alır. Bu mekanizma çoğu senaryoda büyük bir avantaj sağlasa da, içerik değiştiğinde eski bir sürümün hâlâ ziyaretçilere sunulması, cache‑in temizlenmemesi sorunu nedeniyle oluşur. Bu yazıda, Cloudflare cache’ini güvenli ve kontrollü bir şekilde temizlemenin farklı yollarını, otomasyon örneklerini ve dikkat edilmesi gereken en iyi uygulamaları ele alacağız.
2. Cloudflare Cache Nasıl Çalışır?
- Edge Nodes: Dünya genelindeki veri merkezlerinde (PoP) dosyalar saklanır.
- TTL (Time‑to‑Live): Her bir obje için belirlenen geçerlilik süresi vardır. TTL sona erdiğinde obje yeniden origin sunucusundan alınır.
- Cache‑Key: URL, query string, cookie ve header kombinasyonuna göre oluşturulan bir anahtardır. Aynı anahtar birden fazla kez istek alırsa, önbellek yanıt verir.
- Cache‑Tag: Cloudflare Workers veya API üzerinden objelere etiket eklenebilir; aynı etiketle işaretlenen tüm objeler toplu olarak temizlenebilir.
Bu yapı, performansı artırırken güncellenen içeriklerin anlık dağıtımını zorlaştırabilir. İşte bu noktada “purge” (temizleme) işlemi devreye girer.
3. Neden Cache Temizlenir?
- İçerik Güncellemesi: Yeni bir blog yazısı, CSS/JS dosyası veya API yanıtı yayınlandığında eski sürümün gösterilmesi.
- Hata Düzeltmesi: Yanlış yapılandırma sonucu hatalı sayfaların önbelleğe alınması.
- Güvenlik: Hassas verilerin önbellekte kalması riskini ortadan kaldırmak.
- A/B Testi ve Kişiselleştirme: Belirli segmentler için farklı içerik sunulurken önbelleğin çabuk temizlenmesi gerekir.
- Performans Analizi: Cache temizlik sonrası ölçüm yaparak iyileştirme etkilerini izlemek.
4. Cache Temizleme Yöntemleri
4.1. Kontrol Paneli Üzerinden “Purge Everything”
En basit yöntem Cloudflare Dashboard → Caching → Configuration → Purge Everything butonuna tıklamaktır. Bu, zone‑daki tüm objeleri siler ve bir sonraki isteklerde origin sunucusundan yeni içerik çekilir.
Uyarı: Büyük trafiğe sahip sitelerde tüm cache’i bir anda temizlemek, origin sunucusuna ani bir yük bindirebilir. Bu yüzden bu yöntemi sadece kritik bir güncelleme sonrası ve düşük trafili zaman dilimlerinde tercih edin.
4.2. URL Bazlı Temizleme
Sadece belirli bir sayfa ya da dosyanın önbelleğini temizlemek isterseniz:
- Dashboard → Caching → Custom Purge → URL Purge sekmesi.
- Temizlemek istediğiniz tam URL’yi girin (örnek:
https://example.com/css/main.css). - Purge butonuna tıklayın.
Bu yöntem, değişiklik yapılan tek bir dosya için ideal bir çözümdür.
4.3. Tag (Etiket) Bazlı Temizleme
Cloudflare Workers veya API üzerinden objelere tag ekleyebilir ve aynı tag’e sahip tüm objeleri toplu olarak temizleyebilirsiniz.
// workers example – add tag
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
const response = await fetch(request)
response.headers.set('Cache-Tag', 'blog-post-2024')
return response
}
Tag‑tabanlı temizlik, bir blog serisi, bir ürün koleksiyonu veya bir API endpoint grupunu güncellerken çok kullanışlıdır.
4.4. API Kullanarak Temizleme
Programatik bir yaklaşım için Cloudflare REST API en doğru yoldur. Aşağıdaki örnek curl yerine HTTPie kullanarak daha okunaklı bir komut sunar:
http POST https://api.cloudflare.com/client/v4/zones/{ZONE_ID}/purge_cache \
Authorization:"Bearer $CF_API_TOKEN" \
Content-Type:application/json \
purge_everything=true
{ZONE_ID}: Cloudflare panelinden zone‑ID’nizi alın.$CF_API_TOKEN: API token (Cache Purge izinli) oluşturun.purge_everything=truetüm zone‑yı temizler.
URL Bazlı Temizleme API Örneği
http POST https://api.cloudflare.com/client/v4/zones/{ZONE_ID}/purge_cache \
Authorization:"Bearer $CF_API_TOKEN" \
Content-Type:application/json \
urls:='["https://example.com/css/main.css","https://example.com/js/app.js"]'
Tag Bazlı Temizleme API Örneği
http POST https://api.cloudflare.com/client/v4/zones/{ZONE_ID}/purge_cache \
Authorization:"Bearer $CF_API_TOKEN" \
Content-Type:application/json \
tags:='["blog-post-2024"]'
Not: API yanıtı JSON formatında olur. Başarılı bir temizlik için
"success": truealanını kontrol edin.
4.5. CLI / HTTPie ile Otomasyon
CI/CD pipeline’ınızda ya da bir cron job’da cache temizleme işlemini otomatikleştirmek için bash script hazırlayabilirsiniz.
#!/usr/bin/env bash
ZONE_ID="YOUR_ZONE_ID"
TOKEN="YOUR_API_TOKEN"
# 1. Tüm cache’i temizle
http POST https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/purge_cache \
Authorization:"Bearer ${TOKEN}" \
Content-Type:application/json \
purge_everything=true
# 2. Belirli URL’leri temizle (isteğe bağlı)
# http POST https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/purge_cache \
# Authorization:"Bearer ${TOKEN}" \
# Content-Type:application/json \
# urls:='["https://example.com/style.css"]'
Bu script’i chmod +x purge.sh ile çalıştırılabilir hâle getirin ve crontab -e içine aşağıdaki satırı ekleyin (örnek: her gece 02:00’da çalıştırmak için):
0 2 * * * /path/to/purge.sh >> /var/log/cf_purge.log 2>&1
5. Otomasyon ve Süreklilik
- GitOps Yaklaşımı – İçerik değişikliklerini
gitüzerinden yönetip, bir GitHub Action tetikleyerek ilgili URL’leri API üzerinden temizleyebilirsiniz. - Webhook Entegrasyonu – CMS (WordPress, Ghost vb.) bir içerik yayınlandığında Cloudflare webhook’una POST gönderip otomatik purge tetiklenebilir.
- Edge Workers – Dinamik olarak
Cache-Control: max-age=0başlığını ekleyerek, belirli bir endpoint’in her zaman origin’den çekilmesini sağlayabilirsiniz.
Örnek GitHub Action
name: Purge Cloudflare Cache
on:
push:
branches: [ main ]
paths:
- "public/**"
jobs:
purge:
runs-on: ubuntu-latest
steps:
- name: Call Cloudflare API
env:
CF_TOKEN: ${{ secrets.CF_API_TOKEN }}
ZONE_ID: ${{ secrets.CF_ZONE_ID }}
run: |
http POST https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/purge_cache \
Authorization:"Bearer ${CF_TOKEN}" \
Content-Type:application/json \
purge_everything=true
Bu yapı sayesinde, public/ klasöründe bir değişiklik olduğunda otomatik olarak tüm cache temizlenir.
6. En İyi Uygulamalar
| Uygulama | Açıklama |
|---|---|
| Cache‑Tag Kullanımı | Aynı içerik grubunu tek bir tag ile işaretleyin; toplu temizlik tek bir API çağrısı ile yapılır. |
| TTL Değerlerini Optimize Edin | Çok sık güncellenen dosyalar için düşük TTL (max-age=60) belirleyin, böylece her purge ihtiyacını azaltırsınız. |
| Purge‑Everything’ı Sınırlı Kullanın | Büyük sitelerde tüm cache’i temizlemek, origin’e ani yük bindirir. Mümkün olduğunca URL‑ve Tag‑bazlı temizlik tercih edin. |
| API Token Yetkilerini En Küçük Seviyede Tutun | Cache Purge izni dışında bir yetki vermeyin; güvenlik riski azalır. |
| Temizlik Sonrası İzleme | Cloudflare Analytics > Caching sekmesinden Cache Hit Ratio ve Purge Requests grafiğini izleyin. |
| Otomasyon Log’larını Saklayın | Cron ya da CI pipeline’larından dönen logları merkezi bir log sistemi (ELK, Loki) içinde tutarak hataları hızlı yakalayın. |
7. Sık Karşılaşılan Sorunlar ve Çözüm Önerileri
- Purge İsteği Başarısız Oluyor
- Neden: API token’da
Cache Purgeizni eksik. - Çözüm: Cloudflare dashboard → API Tokens → Create Token →
Edit Cloudflare Workersya daCustom Token→Cache Purgeiznini ekleyin.
- Neden: API token’da
- Temizlenen URL Hâlâ Eski İçeriği Gösteriyor
- Neden: Tarayıcıda local cache (örnek: Service Worker) tutuluyor.
- Çözüm:
Cache-Control: no-cache, must-revalidatebaşlığını ekleyin veya tarayıcıda hard‑refresh (Ctrl+F5) yapın.
- Purge Sonrası Trafik Patlaması
- Neden: Origin sunucusu aynı anda yüksek sayıda istek alıyor.
- Çözüm: Staging ortamda önbelleği kademeli temizleyin (
Purge by Tag), ya da Rate Limiting kurallarını geçici olarak artırın.
- Tag Bazlı Temizleme Çalışmıyor
- Neden: Objeye tag eklenmemiş.
- Çözüm: Workers’da
Cache-Tagheader’ının doğru bir şekilde eklenip eklenmediğini kontrol edin.
8. Sonuç
Cloudflare cache’i, web performansını artıran güçlü bir araçtır; ancak güncel içerik sunmak ve güvenlik risklerini azaltmak için düzenli temizlik (purge) işlemleri şarttır. Bu makalede, kontrol paneli, URL‑bazlı, tag‑bazlı ve API‑tabanlı temizlik yöntemlerini, otomasyon örneklerini ve en iyi uygulamaları ele aldık.
Özetle:
- İhtiyaca göre yöntem seçin – tüm site için “Purge Everything” yerine URL veya tag‑bazlı temizlik tercih edin.
- API ve otomasyon – CI/CD, cron job veya webhook entegrasyonlarıyla temizlik sürecini tamamen otomatikleştirin.
- Güvenliği ihmal etmeyin – API token izinlerini kısıtlayın ve log‑lamayı unutmayın.
- Performans izleme – temizlik sonrası cache hit oranlarını ve origin yükünü izleyerek gerekli ayarlamaları yapın.
Bu adımları takip ettiğinizde, Cloudflare cache yönetimi sorunsuz, ölçeklenebilir ve güvenli bir hâle gelecektir. İyi çalışmalar!
Bu yazı Groq ile otomatik oluşturulmuştur.