Bir web sitesi tek bir sunucuda barınır ama ziyaretçiler dünyanın dört bir yanından gelir. Aradaki coğrafi mesafe büyüdükçe yanıt süreleri uzar, görseller geç yüklenir ve kullanıcı sayfayı terk eder. İşte bu mesafeyi kapatmak için devreye giren altyapı, içeriği kullanıcıya en yakın noktadan sunma fikri üzerine kuruludur.

CDN'in Temel Mantığı

İçerik dağıtım ağı (Content Delivery Network), coğrafi olarak farklı bölgelere yerleştirilmiş sunucuların oluşturduğu dağıtık bir önbellek katmanıdır. Kaynak sunucunuzda (origin) duran statik dosyaların kopyaları bu sunuculara dağıtılır ve ziyaretçi siteye girdiğinde içerik, fiziksel olarak kendisine en yakın düğümden teslim edilir.

Bu yaklaşımın kalbinde iki kavram yatar: edge sunucular ve PoP (Point of Presence) noktaları. PoP'lar büyük internet değişim merkezlerine yerleştirilmiş veri merkezleridir; her PoP içinde önbelleği tutan edge sunucular bulunur. İstanbul'daki bir kullanıcı Frankfurt'taki kaynak sunucu yerine İstanbul PoP'undan yanıt aldığında, paketlerin kat ettiği yol kısalır ve gecikme (latency) belirgin biçimde düşer.

Bir İstek Edge Üzerinden Nasıl İlerler?

Tarayıcı bir dosya talep ettiğinde olaylar zinciri genellikle şu sırayla işler:

  • DNS yönlendirmesi: CDN sağlayıcısının DNS'i, kullanıcının IP'sine bakarak en uygun edge düğümünün adresini döndürür (anycast yönlendirme yaygındır).
  • Cache kontrolü: Edge sunucu, istenen dosyanın güncel bir kopyasının önbellekte olup olmadığına bakar.
  • Cache HIT: Dosya mevcutsa doğrudan edge'den döner, kaynak sunucu hiç rahatsız edilmez.
  • Cache MISS: Dosya yoksa veya süresi dolmuşsa edge, origin'den dosyayı çeker, kullanıcıya iletir ve bir sonraki istekler için yerel olarak saklar.

Bu davranışı yanıt başlıklarından izleyebilirsiniz. Çoğu sağlayıcı cf-cache-status, x-cache veya x-served-by gibi başlıklarla isteğin önbellekten mi yoksa kaynaktan mı geldiğini açıkça gösterir.

curl -sI https://example.com/assets/app.css | grep -iE 'cache|age|cf-ray'
# cf-cache-status: HIT
# age: 8421
# cache-control: public, max-age=31536000, immutable

Cache Süresini Kim Belirler?

Önbelleğin ne kadar süre tutulacağını esas olarak origin sunucunun gönderdiği HTTP başlıkları yönetir. Cache-Control direktifindeki max-age değeri, edge'in dosyayı kaç saniye taze sayacağını söyler. Ek olarak ETag ve Last-Modified başlıkları, sürenin bitiminde origin'e "bu dosya değişti mi?" diye soran koşullu istekleri (304 Not Modified) mümkün kılar.

Apache tarafında bu davranışı .htaccess üzerinden, statik varlıklar için uzun ömürlü başlıklarla tanımlamak yaygın bir pratiktir:

<IfModule mod_headers.c>
  <FilesMatch "\.(css|js|woff2|webp|jpg|png)$">
    Header set Cache-Control "public, max-age=31536000, immutable"
  </FilesMatch>
  <FilesMatch "\.(html|json)$">
    Header set Cache-Control "public, max-age=300, must-revalidate"
  </FilesMatch>
</IfModule>

Burada dikkat edilmesi gereken nokta, sık değişen HTML ile neredeyse hiç değişmeyen görsel ve font dosyalarına aynı kuralı uygulamamaktır. Dosya adlarına sürüm parmak izi (örneğin app.4f2a.css) eklemek, bir yıllık önbelleği güvenle kullanmanın bilinen yoludur.

Statik mi, Dinamik mi?

Klasik CDN'ler statik içerikte parlar: CSS, JavaScript, görseller, video segmentleri, font dosyaları. Bu varlıklar kullanıcıdan kullanıcıya değişmediği için önbelleğe alınmaları kolaydır. Dinamik içerik ise (oturuma bağlı sayfalar, sepet, panel) doğası gereği her istekte farklı olabildiğinden geleneksel anlamda cache'lenemez.

Modern ağlar bu sınırı, kaynak sunucuyla edge arasındaki bağlantıyı optimize eden tekniklerle aşar. TLS oturumlarının edge'de sonlandırılması, kalıcı bağlantı havuzları ve TCP penceresinin ön ısıtılması sayesinde, önbelleğe alınamayan istekler bile origin'e daha hızlı ulaşır. Bazı sağlayıcılarda edge üzerinde çalışan hafif kod (edge functions) ile yönlendirme ve kişiselleştirme mantığı kullanıcıya yakın noktada işlenir.

ÖzellikCDN KullanılmadanCDN ile
İçeriğin sunulduğu noktaTek origin sunucuKullanıcıya en yakın edge
Gecikme (uzak coğrafya)Genellikle yüksekBelirgin biçimde düşük
Origin yüküTüm trafiği taşırCache HIT'lerle büyük ölçüde azalır
DDoS dayanıklılığıSınırlıTrafiği dağıtan koruma katmanı
Trafik artışına tepkiOrigin tıkanabilirEdge yükü emer

Hız Dışındaki Kazanımlar

İçerik dağıtım ağları yalnızca sayfa hızını iyileştirmez; aynı zamanda altyapınızın önünde bir kalkan görevi görür. Trafiğin büyük kısmı edge katmanında karşılandığı için kaynak sunucunuza ulaşan istek hacmi düşer, bu da kaynak tasarrufu demektir.

  • DDoS azaltma: Hacimsel saldırılar dağıtık ağ üzerinde emilir, origin doğrudan hedef olmaz.
  • TLS sonlandırma: Şifreleme el sıkışması edge'de tamamlanır, kullanıcıya yakın olduğu için daha hızlıdır.
  • Bant genişliği maliyeti: Origin'den çıkan veri trafiği azaldığı için sunucunuzun outbound kullanımı düşer.
  • Erişilebilirlik: Bir PoP devre dışı kalsa bile istekler komşu düğümlere yönlendirilir.

Origin Sunucu Seçimi Hâlâ Önemli

CDN, kaynak sunucunun yerini almaz; onu hızlandırır. Cache MISS durumunda veya dinamik içerikte tüm yük yine origin'e biner. Bu yüzden iyi yapılandırılmış bir önbellek katmanının altında, sağlam bir barındırma planı olması gerekir. Görece küçük ve içerik ağırlıklı projeler için iyi optimize edilmiş bir web hosting paketi çoğu durumda CDN ile el ele gayet yeterli olur.

Trafiği yoğun, özel yapılandırma gerektiren ya da kendi cache yazılımını (Varnish, Nginx FastCGI cache) origin tarafında çalıştırmak isteyen ekipler içinse kök erişimi sunan bir sanal sunucu çözümü daha fazla kontrol alanı sağlar. Edge'in arkasındaki origin ne kadar güçlüyse, ısınma süreleri ve revalidate istekleri de o kadar sorunsuz ilerler.

Bogahost Önerisi: CDN'i devreye aldıktan sonra origin sunucunuzu doğrudan IP üzerinden test ederek gerçek yanıt sürelerini ölçün ve cf-cache-status başlığını izleyin. Yüksek MISS oranı görüyorsanız sorun çoğu zaman CDN'de değil, origin'in gönderdiği eksik veya yanlış Cache-Control başlıklarındadır.

Yapılandırırken Sık Yapılan Hatalar

Bir içerik dağıtım ağını yanlış kurgulamak, hiç kurmamaktan daha sorunlu olabilir. En sık karşılaşılan tuzaklar şunlardır:

  • Çerez sızıntısı: Statik dosyaların yanıtında Set-Cookie başlığı varsa pek çok edge o yanıtı önbelleğe almayı reddeder.
  • Aşırı agresif önbellek: HTML'i uzun süre cache'lemek, güncel olmayan içeriğin günlerce sunulmasına yol açar.
  • Purge ihmali: Dosya güncellendiğinde önbellek temizlenmezse eski sürüm yayılmaya devam eder; sürümlü dosya adı bu riski ortadan kaldırır.
  • Yanlış protokol zorlaması: Origin ile edge arasında uyumsuz HTTPS ayarları yönlendirme döngülerine (redirect loop) neden olabilir.

Özetle

İçerik dağıtım ağı, web sitenizi kullanıcıya yaklaştıran, origin yükünü hafifleten ve saldırılara karşı bir tampon oluşturan dağıtık bir altyapıdır. Başlıkları doğru ayarlamak, statik ile dinamik içeriği ayırmak ve sağlam bir kaynak sunucuyla eşleştirmek, ağdan alacağınız verimi belirleyen üç temel etkendir. Doğru kurgulandığında ziyaretçiniz, sayfanın aslında kıtalar ötesinde barındığını hiç fark etmez.

Reklam Alanı

İçerik Altı (728x90)

Yorumlar (0)

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Yorum Yap

Maksimum 2000 karakter