CDN nedir? Cloudflare ile hosting birlikte nasıl çalışır

CDN'in ne yapıp ne yapmadığını, Cloudflare'in DNS proxy modelini, Flexible ile Full (strict) SSL farkını, önbellek kurallarını, barındırma lokasyonuyla ilişkisini, ücretsiz planın sınırlarını ve firmanızla birlikte kurulum adımlarını anlatıyoruz.

CDN (içerik dağıtım ağı), sitenizin dosyalarını dünyanın farklı noktalarındaki sunucularda önbelleğe alıp ziyaretçiye en yakın noktadan sunan bir ağdır. Cloudflare, ücretsiz planı ve DNS üzerinden devreye giren modeliyle en yaygın bilinen CDN'lerden biridir; paylaşımlı paketlerle bile kısa sürede kurulur; isim sunucusu değişikliğinin yayılması ise birkaç saati bulabilir. Bu yazı CDN'in ne yapıp ne yapmadığını, Cloudflare'in proxy modelini, SSL modlarını, önbellek kurallarını, barındırma lokasyonuyla ilişkisini ve ücretsiz planın sınırlarını açıklar.

CDN ne yapar, ne yapmaz?

Yaptıkları:

  • Görsel, CSS, JavaScript ve yazı tipi gibi statik dosyaları uç noktalarda önbelleğe alır; kaynak makineye giden istek sayısı düşer.
  • Ziyaretçiyle arasındaki mesafeyi kısaltır; uzak kitleler için gecikme azalır.
  • Kaynak IP adresini gizler ve ağ katmanındaki saldırı trafiğini kendi üzerinde emer.
  • TLS sonlandırma, HTTP/2 ve HTTP/3, sıkıştırma gibi protokol iyileştirmelerini kaynak makineye dokunmadan sağlar.
  • Basit kurallarla ülke, yol ya da kullanıcı aracısına göre erişimi kısıtlar.

Yapmadıkları:

  • Dinamik sayfaları varsayılan olarak önbelleğe almaz; sepet, üye paneli ve arama her seferinde kaynağa gider.
  • Yavaş bir PHP uygulamasını hızlandırmaz; sayfanın üretilme süresi aynı kalır.
  • Kaynak makinenin çökmesini önlemez; önbellekte olmayan her şey makine kapalıyken erişilemez olur.
  • Yedek almaz, güvenlik açığı olan eklentiyi onarmaz, veritabanını optimize etmez.

Kısacası CDN, iyi yapılandırılmış bir barındırma hizmetinin yerine değil, üstüne gelir. Temel kavramlar için hosting nedir? rehberine bakabilirsiniz.

Cloudflare'in DNS proxy modeli

Klasik CDN'ler bir alt alan adı (cdn.ornek.com) üzerinden yalnızca statik dosyaları sunar; sitenin kodunda bağlantıları o adrese yönlendirmeniz gerekir. Cloudflare farklı çalışır: Alan adınızın isim sunucularını Cloudflare'e yönlendirirsiniz ve DNS kayıtlarınız orada tutulur. Proxy işareti (turuncu bulut) açık olan kayıtlar için ziyaretçi, sitenizin gerçek IP'sine değil Cloudflare'in IP'sine bağlanır; istek önce uç noktaya gelir, önbellekte yoksa kaynak makineye iletilir.

Bu modelin sonuçları:

  • Kodda hiçbir değişiklik gerekmez; paylaşımlı paketlerde bile çalışır.
  • Tüm HTTP trafiği Cloudflare'den geçtiği için güvenlik duvarı, önbellek ve SSL tek yerden yönetilir.
  • E-posta (MX, mail alt alan adı) gibi HTTP dışı kayıtlar proxy'lenmemeli; gri bulut olarak kalmalıdır. Aksi halde posta sunucunuza ulaşılamaz.
  • Kaynak makinenin günlüklerinde ziyaretçi IP'si yerine Cloudflare IP'leri görünür; gerçek IP'yi geri kazanmak için web sunucusunda ek ayar gerekir (Apache'de mod_remoteip, LiteSpeed ve Nginx'te ilgili yönergeler). Bazı firmalar bu ayarı hazır sunar.

SSL modları: Flexible, Full ve Full (strict)

En çok hata yapılan ayar budur. Mod, ziyaretçi ile Cloudflare arasındaki değil, Cloudflare ile kaynak makine arasındaki bağlantının nasıl şifreleneceğini belirler:

ModCloudflare – kaynak arasıKaynakta sertifikaNe zaman
FlexibleŞifresiz HTTPGerekmezYalnızca kaynakta SSL kurulamıyorsa; yönlendirme döngüsü riski
FullHTTPS, sertifika doğrulanmazKendinden imzalı yeterliGeçici çözüm
Full (strict)HTTPS, sertifika doğrulanırGeçerli sertifika (Let's Encrypt ya da Cloudflare Origin sertifikası)Önerilen

Flexible modda tarayıcı kilit simgesi görür ama Cloudflare ile sunucunuz arasındaki hat açıktır; kişisel veri taşıyan bir site için kabul edilemez. Ayrıca WordPress'in https yönlendirmesiyle çakışıp sonsuz yönlendirme döngüsüne yol açabilir. Doğru kurulum, barındırma panelinden ücretsiz Let's Encrypt sertifikasını kurmak ve modu Full (strict) yapmaktır; sertifikayı dışarıdan doğrulamak istemiyorsanız Cloudflare'in yalnızca kendi ağının tanıdığı Origin sertifikası da kullanılabilir. Sertifika türlerini SSL sertifikası nedir? yazısında anlattık.

Önbellek kuralları

Varsayılan ayarda Cloudflare yalnızca statik dosya uzantılarını önbelleğe alır; HTML sayfalar her istekte kaynağa gider. İçerik ağırlıklı bir sitede asıl kazanç HTML'yi de önbelleğe almaktan gelir; bunun için önbellek kuralı (cache rule) yazılır:

  1. “Her şeyi önbelleğe al” kuralını yalnızca giriş yapmamış ziyaretçiler için uygulayın; WordPress ve WooCommerce oturum çerezlerini (wordpress_logged_in_, woocommerce_items_in_cart, wp_woocommerce_session_ ile başlayanlar) taşıyan istekler önbelleği atlamalıdır.
  2. Yönetim yolu (/wp-admin, /wp-login.php) ve sepet, ödeme, hesap sayfaları için önbellek dışı kural ekleyin.
  3. Uç nokta TTL'ini içerik güncelleme sıklığınıza göre belirleyin; içerik değiştiğinde temizleme (purge) yapın. Birçok WordPress eklentisi yayınlama anında bunu otomatik tetikler.
  4. Tarayıcı TTL'ini statik dosyalar için uzun, HTML için kısa tutun.

Kaynak makinedeki sayfa önbelleğiyle Cloudflare önbelleği birbirinin yerine geçmez; ilki uç noktada olmayan istekleri hızlandırır, ikincisi kaynağa gelen istek sayısını azaltır. İkisi birlikte çalışmalıdır.

Barındırma lokasyonu CDN ile anlamsızlaşır mı?

Hayır. Önbellekteki her istek uç noktadan döner ve kaynak lokasyonu görünmez olur; ancak dinamik sayfalar, önbellek süresi dolan ilk istek ve ödeme bildirimleri gibi makineler arası trafik kaynağa gider. Dinamik ağırlıklı bir sitede kaynak makinenin ziyaretçiye yakınlığı hâlâ belirleyicidir. Bir ayrıntı daha var: Cloudflare ile kaynak arasındaki yol, ziyaretçinin bağlandığı uç noktadan kaynak makineye gider; Türkiye'deki bir ziyaretçi için kaynak İstanbul'daysa bu yol kısa, Frankfurt'taysa uzundur. Kullandığınız CDN'in Türkiye'ye en yakın uç noktasını sağlayıcının yayımladığı konum listesinden kontrol edin.

Ücretsiz planın sınırları

Ücretsiz plan tek bir site için şaşırtıcı ölçüde geniştir: DNS, proxy, temel DDoS koruması, paylaşımlı SSL sertifikası, sınırlı sayıda önbellek ve güvenlik duvarı kuralı. Sınırlar şu alanlarda hissedilir; güncel değerleri Cloudflare'in plan sayfasından kontrol edin, çünkü değişiyor:

  • Yazılabilecek sayfa ve önbellek kuralı sayısı sınırlıdır; karmaşık siteler ücretli plana geçer.
  • Yönetilen güvenlik duvarı kural setlerinin tam hali, gelişmiş bot yönetimi ve görsel optimizasyonu ücretli planlardadır; ücretsiz planda kural seti ve bot korumasının yalnızca temel sürümleri bulunur.
  • Yüklenebilecek dosya boyutuna üst sınır vardır; büyük medya dosyaları için ayrı bir yol gerekir.
  • Günlük kayıtlarına erişim ve destek kanalı sınırlıdır.
  • WordPress için otomatik platform optimizasyonu (APO) ek ücretli bir eklentidir.
  • Birden fazla site yönetiyorsanız her alan adı ayrı eklenir ve sınırlar alan adı başına uygulanır.

Çoğu kişisel site ve küçük işletme ücretsiz planda kalır; yoğun trafik, çok sayıda kural ya da uyum gereksinimi olanlar ücretli plana geçer.

Barındırma firmasıyla birlikte kurulum

  1. Alan adınızı Cloudflare'e ekleyin; mevcut DNS kayıtlarınız otomatik taranır, eksikleri panelinizden tamamlayın.
  2. Alan adının isim sunucularını kayıt firmasında Cloudflare'in verdiği adreslerle değiştirin; adımlar için DNS nedir? yazısına bakabilirsiniz.
  3. Web kayıtlarını (A, AAAA, www) proxy'li, e-posta ve FTP kayıtlarını DNS only bırakın.
  4. Barındırma panelinden Let's Encrypt sertifikasını kurun, SSL modunu Full (strict) yapın.
  5. Gerçek ziyaretçi IP'sinin günlüklere yazılmasını sağlayın; firmanız bunu hazır sunuyorsa destek sayfasında yazar.
  6. Firmanızın güvenlik duvarının Cloudflare IP aralıklarını engellemediğinden emin olun.
  7. Önbellek kurallarını yukarıdaki düzende ekleyin ve giriş yapmış bir kullanıcıyla test edin.

Bazı firmalar panel içinde Cloudflare entegrasyonu ya da kendi CDN'lerini sunar; kendi CDN'leri varsa ikisini üst üste kullanmak yerine birini seçin. Paylaşımlı ve WordPress paketlerini paylaşımlı hosting ve WordPress hosting sayfalarında karşılaştırırken firmanın CDN ve SSL desteğini de not edin.

Sık yapılan hatalar

  • Flexible modda bırakıp sitenin güvenli olduğunu sanmak.
  • E-posta kaydını proxy'leyip postanın kesilmesine yol açmak.
  • “Her şeyi önbelleğe al” kuralını giriş yapmış kullanıcılar için de uygulayıp yöneticinin sayfasını ziyaretçilere göstermek.
  • Kaynak IP'sini DNS geçmişinde ya da e-posta başlıklarında açıkta bırakıp proxy'nin koruma değerini sıfırlamak.
  • Önbellek temizlemeden içerik güncelleyip eski sayfayı saatlerce sunmak.
  • CDN kurduktan sonra yavaş sayfaların hâlâ yavaş olmasına şaşırmak; sorun kaynak makinedeyse CDN çözmez.
  • Proxy'nin güvenlik duvarına güvenip kaynak makinedeki güncellemeleri ihmal etmek; proxy yalnızca kendi üzerinden gelen trafiği süzer, gerçek IP'yi bilen bir saldırgan doğrudan bağlanabilir.

İlgili yazılar

Yüksek trafikli site için hosting: ne zaman VPS, ne zaman bulut

Sürekli ve anlık trafik arasındaki farkı, darboğazın nasıl bulunacağını, önbellek ve CDN ile kazanılan payı, dikey ile yatay ölçeklemeyi, veritabanı ayrımını ve VPS ile bulut arasındaki maliyet mantığını adım adım anlatıyoruz.

Yönetimli mi, yönetimsiz mi? Sunucu yönetimini kime bırakmalı

Yönetimli ve yönetimsiz sunucu arasındaki kapsam farklarını, sorumluluk matrisini, maliyet mantığını, SLA'nın ne vaat edip ne vaat etmediğini ve kendi yöneticinizle çalışma seçeneğini bir karar listesiyle anlatıyoruz.