CDN'in neyi teslim etmesi gerektiğine karar verin
Envanterle başlayın. Görseller, stylesheet'ler, script'ler, fontlar ve indirmeler gibi sürümlenmiş varlıkları HTML, API'ler, hesap sayfaları, ödeme ve yönetimden ayırın. CDNs genellikle isteğe bağlı olarak bir önbellek doldurur: ilk istek orijine ulaşabilirken, daha sonra gelen eşleşen istekler kenardan servis edilebilir. Yakın bir edge ile bir önbellek vuruşu farklı faydalardır.
Her yol için yanıt veren hostu, uygulamayı, depolama bucket'ını veya yük dengeleyiciyi kaydedin; bu, bir önbellek miss durumunda cevap vermelidir.
Her ziyaretçi için aynı olan ve belirtilen ömrü dolana kadar güvenle erişilebilir kalan varlıklardan başlayın.
Nitelikli bir mühendisin ayırma tasarımını ve testini yapmadıkça kişiselleştirilmiş panoları, oturum bağlı sayfaları veya müşteri verilerini paylaşmayın.
İçerik davranışına göre önbellek politikasını belirleyin
HTTP yanıt başlıkları önbellek davranışını ifade eder. Cache-Control, bir yanıtın saklanıp saklanamayacağını ve ne kadar süre taze kaldığını söyler; TTL (time to live) bu tazelik dönemidir. Bir tarayıcı özel bir önbellektir, bir CDN ise genellikle paylaşılan bir önbellektir. Açık başlıklar kullanın. HTTP standardı, paylaşılan önbellek ömrünü max-age'den ayrı olarak s-maxage ile ayarlamaya izin verir.
İçerik değiştiğinde yeni bir URL yayınlayın; örneğin içerik-hash'li dosya adı kullanın ve değişmez sürüme uzun, belgelenmiş bir ömür verin.
Eski içeriğin maliyetine göre kısa bir ömür veya doğrulama davranışı seçin; fiyatlar, stok veya hesap durumu için bir varlık kuralını yeniden kullanmayın.
Bir kullanıcıya yönelik yanıtlar için 'private' kullanın. Sadece bir çerez olması, yanıtı paylaşılan bir önbellek için güvenli yapmaz.
İnvalidasyonu (purge) istisna yapın, yayın planı yapmayın
Invalidasyon veya temizleme, yönetilen bir CDN'e normal sona ermeden önce seçili saklanan nesneleri düşürmesini söyler. Düzeltmeler için kullanın, her dağıtım için değil. Purge etmeden önce orijinin zaten yerine döndürdüğünü doğrulayın; aksi halde yeniden dolum kötü yanıtı koruyabilir. Tarayıcı önbellekleri CDN'in purge kontrolünün dışındadır, bu yüzden değişen dosyalar için URL sürümlendirme güvenilir kalır.
Tüm site temizliği yerine belirli bir yol, sürüm grubu veya sağlayıcı tarafından desteklenen bir önbellek etiketi tercih edin; geniş misses orijini aniden yükleyebilir.
Dağıtılmış bir purge her kenara aynı anda ulaşmayabilir. Sağlayıcının tamamlanma semantiğini kontrol edin ve temsilci bir URL'i test edin.
Eski ve yeni URL'yi, önbellek kuralını, purge kapsamını, beklenen sonucu ve geri alma adımını kaydedin.
Orijini teslimat katmanının arkasında tutun
Doğrudan orijin erişimi CDN önbelleklemesini ve kenar kontrollerini atlayabilir. Orijini, sadece CDN'nin ve amaçlanan yolların ulaşabileceği şekilde kısıtlayın. Yığınınıza bağlı olarak, bulut-orijin erişim kontrolleri, belgelenmiş CDN çıkış aralıklarına sahip güvenlik duvarı kuralları, özel ağlama, imzalı orijin istekleri veya her iki tarafın sertifikalarla kimlik doğruladığı mutual TLS (mTLS) kullanın.
Yetkili bir test konumundan, orijinin genel istekleri reddettiğini ve CDN host adının çalıştığını doğrulayın.
Sağlık kontrollerini, dağıtım araçlarını ve dahili erişimi geniş bir genel kural yerine kimlik ve ağ ile kapsamlandırın.
Orijin kimlik doğrulaması CDN ve orijin arasında farklılık gösterir. Güncel sağlayıcı kurulum rehberliğini ve güvenlik incelemesini kullanın.
TLS'i iki bağlantı olarak ele alın
Kenardaki HTTPS, ziyaretçi ile CDN arasındaki bağlantıyı korur, ancak CDN ile orijin arasındaki bağlantının da korunması gerekir. Her iki bacağı da şifrelemeyi gerektirin, CDN modu için orijin sertifikasını doğrulayın ve host adı ile yenileme sahipliğini atayın. OWASP varsayılan olarak TLS 1.3'ü önerir ve uyumluluk için TLS 1.2'yi kabul eder; TLS 1.0 ve 1.1'in devre dışı bırakılması gerektiğini söyler. Düzenlenen veri, ödeme akışları veya sıra dışı istemci uyumluluğu için nitelikli inceleme alın.
Kenardaki ve orijindeki sertifika sahiplerini, yenileme yollarını ve arıza yanıtını listeleyin.
HTTP-to-HTTPS, canonical-host ve derin bağlantı (deep-link) yönlendirmelerini döngü veya kaybolan yollar açısından test edin.
Şifreleme, bir yanıtı önbelleğe almak için güvenli yapmaz; kimlik doğrulanmış, kişisel ve ödemeye yakın sayfalar için önbellek kurallarını ayrı ayarlayın.
Trafiği değiştirmeden önce gerçek teslim yolunu test edin
Bir staging host adı veya dar bir üretim yoluyla başlayın, ardından CDN host adını test edin, sadece orijini değil. Chrome DevTools Network istek durumunu, etki alanını, zamanlamayı, boyutu ve başlıkları gösterir. İlk ziyaretin yaklaşıklaması için boş-önbellek (empty-cache) hard reload testi yapın, sonra tekrar ziyareti yeniden kullanım için inceleyin. Sadece daha hızlı görünen bir sayfaya değil, beklenen başlıklar ve içeriğe göre karşılaştırma yapın. Kitle coğrafi olarak dağılmışsa temsilci bölgelerden tekrarlayın.
Cache-Control ve sağlayıcıya ait cache-status başlıklarını inceleyin. Genel varlıkların yeniden kullanıldığını ve hassas sayfaların beklenmedik şekilde paylaşılmadığını doğrulayın.
Bir miss, eski içeriğin düzeltilmesi, orijin hatası ve bir varlık veya yolun geri alınmasını geniş lansmandan önce deneyin.
Test edilen URL'leri, başlık yakalamalarını, yol-kural sürümünü ve değişiklik kaydı ile önce-sonra zamanlamalarını saklayın.
İşletme ihtiyaçlarına göre bir CDN seçin, sonra kanıtlayın
Bir CDN'i sadece varış noktası sayısına veya genel bir hız iddiasına göre seçmeyin. Performans coğrafya, zaman, trafik dağılımı, yönlendirme ve önbellek vuruş oranıyla değişir. Temsilci yollar, varlıklar ve bölgeler üzerinde adayları karşılaştırın. Her birinin ihtiyaç duyduğunuz önbellek kontrollerini, hedeflenmiş invalidasyonu, orijin kısıtlamasını, sertifika iş akışını, logları, erişim rollerini, fiyatlandırmayı, desteği ve değişiklik sürecini destekleyip desteklemediğini sorun.
Adaylar için aynı önbellek başlıklarını, orijin davranışını ve sayfaları kullanın; ilk ziyaret ve tekrar ziyaret sonuçlarını ayrı kaydedin.
İstek, transfer, invalidasyon, kayıt ve destek maliyetlerini, ayrıca bir önbellek-miss patlamasını gözden geçirin. Fiyatlandırma ve kontroller plana göre değişir.
Kritik yolları kapsamadan önce dışa aktarılabilir yapılandırma, en az ayrıcalık, test edilmiş geri alma ve net sahiplik talep edin.
