CDN Nedir ve Nasıl Çalışır?
CDN (Content Delivery Network / İçerik Dağıtım Ağı), web sitenizin görsel, CSS, JavaScript ve hatta HTML dosyalarını dünyanın farklı noktalarındaki sunuculara kopyalayan bir dağıtım ağıdır. Ziyaretçi sitenize girdiğinde, dosyalar kaynak sunucunuzdan (örneğin İstanbul'daki hosting) değil, ziyaretçiye en yakın CDN düğümünden (edge server) sunulur.
Örnekle anlatalım: Sunucunuz Türkiye'de. Almanya'daki bir ziyaretçi CDN olmadan her isteğinde ~2.500 km uzaktaki sunucuya bağlanır. Cloudflare gibi bir CDN kullandığınızda ise ziyaretçi Frankfurt'taki edge sunucuya bağlanır — mesafe onlarca kilometreye düşer, gecikme (latency) 150 ms'den 20 ms'ye iner.
CDN'in temel çalışma prensibi şu üç adımdır:
- İlk istek: Ziyaretçi bir sayfa ister; CDN düğümünde dosya yoksa kaynak sunucudan çeker ve önbelleğe (cache) alır.
- Sonraki istekler: Aynı bölgedeki diğer ziyaretçilere dosya doğrudan CDN düğümünden, kaynak sunucuya hiç dokunmadan sunulur.
- Süre bitince: Önbellek süresi (TTL) dolunca CDN dosyayı kaynaktan yeniden çeker ve tazeler.
Neden CDN Kullanmalısınız?
Bir CDN'in sitenize sağladığı somut faydalar:
- ⚡ Hız: Statik dosyalar (resim, CSS, JS) ziyaretçiye en yakın noktadan gelir. TTFB (ilk bayta kadar geçen süre) ciddi düşer.
- 📉 Sunucu yükü azalır: Trafiğin %60-80'i CDN'den karşılandığından kaynak sunucunuz nefes alır. Aynı hosting paketiyle daha fazla ziyaretçi taşırsınız.
- 🛡️ DDoS koruması: Saldırı trafiği CDN katmanında filtrelenir; kaynak sunucunuza ulaşmadan engellenir.
- 🌐 Global erişim: Yurt dışı ziyaretçileriniz varsa sayfa açılış süreleri dramatik biçimde iyileşir.
- 💰 Bant genişliği tasarrufu: Hosting firmanızdan giden trafik azaldığı için bant genişliği limitlerine daha geç takılırsınız.
Bu etki özellikle görselleri ağır sitelerde ve WordPress kurulumlarında belirgindir. Sunucunuzun disk hızı da toplam performansta rol oynar; farkı görmek için NVMe SSD hosting farkı yazımıza da göz atabilirsiniz. Hosting altyapınızı seçerken ise hosting karşılaştırma sayfamızdan hız ve uptime skorlarını inceleyin.
Neden Cloudflare?
Piyasada çok sayıda CDN var (Cloudflare, Fastly, BunnyCDN, Amazon CloudFront). Ancak yeni başlayanlar ve KOBİ'ler için Cloudflare en mantıklı başlangıç noktasıdır. Nedeni: ücretsiz planı bile fazlasıyla yeterli.
| Özellik | Cloudflare Ücretsiz | Cloudflare Pro (~aylık $20 / ~₺650-800) |
|---|---|---|
| Global CDN | ✅ Var (330+ şehir) | ✅ Var |
| Ücretsiz SSL | ✅ Var | ✅ Var |
| DDoS koruması | ✅ Sınırsız (L3/L4/L7) | ✅ Gelişmiş kurallar |
| WAF (Web Uygulama Güvenlik Duvarı) | Sınırlı (5 kural) | ✅ Tam yönetimli |
| Görsel optimizasyonu (Polish) | ❌ Yok | ✅ Var (WebP dönüştürme) |
Küçük/orta ölçekli bloglar, kurumsal siteler ve çoğu e-ticaret sitesi için ücretsiz plan yeterlidir. Pro plana ihtiyaç, genellikle gelişmiş WAF ve görsel optimizasyonu istediğinizde ortaya çıkar.
Cloudflare Kurulumu (Adım Adım)
Cloudflare kurulumu domain'inizin nameserver (NS) kayıtlarını değiştirmek üzerine kuruludur. Yani domain'inizin DNS yönetimini Cloudflare'e devredersiniz. İşte tam süreç:
- Hesap oluşturun: cloudflare.com adresinden ücretsiz kayıt olun ve e-postanızı doğrulayın.
- Site ekleyin: "Add a Site" deyip domain'inizi (örn.
siteniz.com) girin. "Free" planı seçin. - DNS taraması: Cloudflare mevcut DNS kayıtlarınızı otomatik tarar. A, CNAME, MX kayıtlarınızın eksiksiz aktarıldığını mutlaka kontrol edin — özellikle e-posta (MX) kayıtlarınız.
- Turuncu bulut (proxy): A ve CNAME kayıtlarında bulut ikonu turuncu olmalı (proxy açık = CDN + koruma aktif). E-posta ve doğrudan bağlanılması gereken kayıtları gri (DNS only) bırakın.
- Nameserver değiştirin: Cloudflare size iki adet NS adresi verir (örn.
dana.ns.cloudflare.com). Bunları domain'i aldığınız firmanın panelinde mevcut NS'lerin yerine yazın. - Yayılmayı bekleyin: NS değişikliği tipik olarak 15 dakika - birkaç saat içinde yayılır (nadiren 24 saate kadar). Cloudflare aktif olunca size e-posta gönderir.
Kurulumu doğrulamak için terminalde şu komutla nameserver'larınızı kontrol edebilirsiniz:
# Domain'in nameserver kayıtlarını sorgula dig NS siteniz.com +short # Beklenen çıktı (Cloudflare NS'leri): # dana.ns.cloudflare.com. # rob.ns.cloudflare.com. # Sitenin Cloudflare üzerinden geçtiğini doğrula (server: cloudflare) curl -sI https://siteniz.com | grep -i "server\|cf-cache-status"
SSL ve HTTPS Ayarları
Cloudflare aktif olduğunda ücretsiz SSL sertifikası otomatik gelir. Ancak SSL modu ayarı kritiktir. SSL/TLS → Overview bölümünden şu modlardan doğru olanı seçin:
- Flexible: Cloudflare ↔ ziyaretçi arası HTTPS, ama Cloudflare ↔ sunucu arası HTTP. Önerilmez — yönlendirme döngüsüne (redirect loop) ve güvenlik açığına yol açabilir.
- Full: Her iki taraf da HTTPS, sunucudaki sertifika doğrulanmaz. Kabul edilebilir minimum.
- Full (Strict): ✅ Önerilen. Sunucunuzda geçerli bir SSL (örn. Let's Encrypt) varsa bunu seçin. En güvenli seçenektir.
Sunucunuzda henüz SSL yoksa cPanel üzerinden ücretsiz Let's Encrypt kurabilir, ardından Full (Strict) moduna geçebilirsiniz. Detaylar için ücretsiz SSL sertifikası rehberimize bakın. Ayrıca "Always Use HTTPS" seçeneğini açarak tüm HTTP trafiğini HTTPS'e yönlendirin.
Önbellek (Cache) Kuralları
CDN'in gücünü tam kullanmak için önbellek stratejisi kurmalısınız. Cloudflare varsayılan olarak yalnızca statik dosyaları (resim, CSS, JS) önbelleğe alır; HTML'i almaz. WordPress gibi dinamik sitelerde HTML'i de akıllıca önbelleğe almak büyük fark yaratır.
Temel ayarlar (Caching → Configuration):
- Caching Level: "Standard" bırakın (çoğu site için ideal).
- Browser Cache TTL: Statik varlıklar için "4 saat" veya daha uzun.
- Always Online: Açın — sunucunuz çökse bile Cloudflare önbellekten arşiv sayfa sunar.
Cache Rules ile HTML önbelleği (dikkatli kullanın): Yalnızca giriş yapılmamış (ziyaretçi) sayfalarda HTML önbelleklemek performansı uçurur. WordPress'te sepet/hesap/wp-admin sayfalarını mutlaka hariç tutun. Örnek bir kural mantığı:
# Cache Rules → yeni kural örneği (ifade mantığı) # WordPress yönetim ve dinamik yolları önbellekten hariç tut (http.request.uri.path contains "/wp-admin") or (http.request.uri.path contains "/cart") or (http.request.uri.path contains "/checkout") or (http.cookie contains "wordpress_logged_in") # Eylem: Bypass cache (bu istekleri hiç önbelleğe alma)
Bir sayfayı güncelledikten sonra eski sürümün görünmemesi için Caching → Configuration → Purge Cache ile önbelleği temizleyin. Tek tek URL bazlı ("Custom Purge") temizlik en güvenli yöntemdir; "Purge Everything" tüm siteyi soğuk önbelleğe düşürür.
DDoS Koruması ve Güvenlik
Cloudflare'in en değerli tarafı — ücretsiz planda bile — sınırsız DDoS korumasıdır. Ağ ve taşıma katmanı (L3/L4) saldırıları otomatik filtrelenir. Uygulama katmanı (L7) saldırılarına karşı ise birkaç ayarı elle güçlendirmeniz gerekir:
- Security Level: Normalde "Medium". Saldırı anında "High" veya "I'm Under Attack!" moduna alın — bu mod her ziyaretçiye 5 saniyelik JS doğrulama ekranı gösterir ve botları eler.
- Bot Fight Mode: Açın; bilinen kötü botları otomatik engeller (ücretsiz planda mevcuttur).
- Rate Limiting: Belirli bir IP'nin dakikada aşırı istek atmasını sınırlar (ör. login sayfasına brute-force denemeleri).
- WAF kuralları: Ücretsiz planda 5 özel kural hakkınız var. SQL injection denemelerini veya belirli ülke bloklamalarını buradan tanımlayabilirsiniz.
CDN, güvenliğin sadece bir katmanıdır. Sunucu tarafında da tedbir almayı ihmal etmeyin; kapsamlı bir kontrol listesi için hosting güvenliği 10 önlem yazımızı öneririz. Yüksek trafikli veya saldırıya açık projelerde ise güçlü bir altyapı için VDS karşılaştırma sayfamızdan sunucu seçeneklerini değerlendirebilirsiniz.
Sık Yapılan Hatalar
Cloudflare kurulumunda en çok karşılaşılan sorunlar ve çözümleri:
- Redirect loop (ERR_TOO_MANY_REDIRECTS): Genellikle "Flexible" SSL modu + sunucuda zorunlu HTTPS yönlendirme çakışmasından olur. SSL modunu "Full (Strict)" yapın.
- E-postalar çalışmıyor: MX kaydının turuncu buluta (proxy) alınması. MX ve mail alt domainlerini gri (DNS only) yapın.
- Değişiklikler görünmüyor: Agresif HTML önbelleği. İlgili URL için "Purge Cache" yapın veya Development Mode'u geçici açın.
- Gerçek ziyaretçi IP'si loglarda yok: Sunucu logları Cloudflare IP'sini gösterir.
CF-Connecting-IPbaşlığını okuyacak şekilde sunucunuzu yapılandırın (mod_cloudflare / mod_remoteip).
Sıkça Sorulan Sorular
Cloudflare gerçekten ücretsiz mi?
Evet. Cloudflare'in ücretsiz planı CDN, sınırsız DDoS koruması ve ücretsiz SSL dahil olmak üzere çoğu site için fazlasıyla yeterlidir. Pro (~aylık $20 / ~₺650-800 bandında) plan yalnızca gelişmiş WAF ve görsel optimizasyonu gibi ek özellikler için gerekir.
CDN kullanınca sitem gerçekten hızlanır mı?
Özellikle yurt dışı ziyaretçileriniz varsa veya görsel/statik dosya ağırlıklı bir siteniz varsa fark çok belirgindir. Statik dosyalar ziyaretçiye en yakın noktadan sunulur ve TTFB düşer. Tamamen dinamik, önbelleklenemeyen bir API için etki daha sınırlı olur.
Cloudflare kurunca hosting firmamı değiştirmem gerekir mi?
Hayır. Cloudflare sadece DNS ve trafik katmanını yönetir; mevcut hosting sunucunuz kaynak (origin) olarak aynen kalır. Yalnızca domain'inizin nameserver kayıtlarını Cloudflare'e yönlendirirsiniz. Hosting sağlayıcınızı değiştirmeden CDN'i açabilirsiniz.
Nameserver değişikliği ne kadar sürer?
Genellikle 15 dakika ile birkaç saat arası yayılır. Nadir durumlarda global yayılım 24 saati bulabilir. Bu süre boyunca siteniz kesintisiz çalışmaya devam eder; yalnızca CDN kademeli olarak devreye girer.
Cloudflare kullanırken sunucumdaki SSL'i kaldırabilir miyim?
Kaldırmayın. En güvenli mod olan Full (Strict) için sunucunuzda geçerli bir SSL sertifikası (ücretsiz Let's Encrypt yeterli) bulunmalıdır. Sunucu sertifikasını kaldırırsanız ya güvenliği düşürmek ya da "526" hatasıyla karşılaşmak zorunda kalırsınız.