GH GambleHub

CDN ve kenar önbelleğe alma

CDN ve kenar önbelleğe alma

1) Hedefler

CDN (Content Delivery Network - İçerik Teslim Ağı) gecikmeyi ve orijinde yükü azaltır: kenar düğümlerinde statik ve koşullu olarak dinamik içeriği önbelleğe alır, ölçek, kararlılık ve güvenlik sağlar (DDoS/WAF), kenar mantığı ekler (yanıtları/istekleri yeniden yazma, kimlik doğrulama, A/B).

2) Önbellek modeli ve anahtarları

Ключ кеша = 'scheme + host + path +? (selected query params) + headers (Vary)'

Tavsiye edilen:
  • Sorguyu normalleştir ('utm _' dışla,' v 'bırak,' lang ',' ülke ', vb.).
  • 'Vary' değerini en aza indirin (örneğin, 'Vary: Accept-Encoding, Accept-Language'), 'Vary:'den kaçının.
  • API için - route + version tanımlayıcısından anahtar (semver, hash, build id) + gerekli sorgu/başlıklar (örneğin, 'X-Tenant').
  • Kişiselleştirilmiş sayfalar için - kenar segmentasyonu (çerez/coğrafi olarak) veya Skip-Cache.

3) TTL politikaları ve başlıkları

Temel başlıklar:
  • 'Cache-Control: public, max-age = 300, s-maxage = 3600, bayat while-revalidate = 60, bayat-if-error = 300'
  • 'Surrogate-Control' (destekleniyorsa), tarayıcı dışındaki CDN'ler için ayrı bir politikadır.
  • 'ETag'/' Last-Modified' - koşullu istekler (304) ve trafik tasarrufu.
  • Private için: 'Cache-Control: private, no-store', eğer önbelleğe alınmazsa.
  • Önbelleğe izin veren API'ler: 'Cache-Control: public, s-maxage = 60' + sürüm anahtarı.

Önerilen yaklaşım: "Ebedi" kaynaklar (dosya adında parmak izi ile) - 'max-age = 31536000, değişmez'; "Pages/JSON" - kısa TTL + SWR.

4) Engellilik: temizleme/yumuşak temizleme

URL'ye göre temizle: noktasal.
Etiketle/tuşla temizle: grup tasfiyeleri ('Vekil Anahtar: ürünler: 42 kategori: yiyecek' kullanın).
Yumuşak temizleme: içeriği "modası geçmiş'olarak işaretler, kenar yeni bir sürüm alınana kadar bayat verir.
"Sıcak" ısınma: dağıtımdan sonra, ana sayfaları bölgelerden çekin.

5) Kenar performans kalıpları

Bayat-While-Revalidate: "modası geçmiş" kopya + arka plan güncellemesi ile hızlı yanıt.
Kritik kaynakların prefetch'i (ön yükleme, preconnect, dns-prefetch).
Sıkıştırma: gzip/br (metin için), CDN destekleniyorsa zstd.
HTTP/2/3 (QUIC): çoğullama ve daha az gecikme.
TLS oturumu devam ediyor ve OCSP çevre üzerinde zımbalanıyor.

6) Resimler ve videolar

Kenarda görüntü optimizasyonu: yeniden boyutlandırma/biçimlendirme anlaşması ('Accept: image/avif, webp'), авто -WebP/AVIF, DPR- варианты.
Lazy-load и responsive ('srcset', 'boyutlar').
Video: Fırtınaları azaltmak için HLS/DASH, parçalı MP4, origin-shield (merkezi önbellek).
Küçük resim hizmetleri ve özel resimler için imzalı URL'ler.

7) Çevre güvenliği

WAF: OWASP kuralları, ülke/ASN engelleme, anahtarlı hız limitleri (IP + çerez + belirteç).
DDoS: L3/4 ovma, L7 dama, JS zorlukları/turnike.
Özel kaynaklar için imzalı URL'ler/çerezler (video/raporlar): TTL + HMAC/EdDSA.
Geo-eskrim ve uygunluk (örneğin, bölgelerin yasaklanması).

8) Kenar hesaplama (kenardaki mantık)

Durumlar:
  • Önbelleği bozmadan kişiselleştirme: segmentler (A/B), coğrafi konum, kenardaki dil ve içerik önbelleğe alınır.
  • Cevapları/başlıkları yeniden yazma, yönlendirmeler, AB bölünmeleri.
  • Belirteç tabanlı kimlik doğrulama: JWT imza doğrulama, anahtar bağlama.
  • Kanarya çerez/yüzde: yeni arka uç trafiğinin bir parçası.

Teknoloji örnekleri arasında Cloudflare Workers/Durable Objects, Fastly Compute @ Edge, AWS Lambda @ Edge sayılabilir.

9) Çoklu CDN ve küresel çevre

Nedenleri: kapsama, SLA, maliyet, bölgesel kısıtlamalar, olayların izolasyonu.
GSLB/Trafik Yönlendirme: coğrafi/gecikme/gerçek hatalarda; Birçok noktadan sağlık kontrolleri.
Tek anahtar/başlık şeması (Surrogate-Key), senkronize temizleme kuralları.
Köken kalkanı, köken engelli "vurmak" için tüm CDN'lerde ortaktır.

10) Günlük kaydı ve metrikler

Toplayın:
  • Vuruş oranı (önbellek, CDN ™ kenar/orijin), bayt isabet oranı.
  • Gecikme süresi p50/p95/p99, kod/rota ile hata oranı.
  • Origin getirileri: RPS/bytes/errors (gereksiz özlemeye karşı koruma).
  • Bölgesel grafikler (POP/ASN/ülkeye göre).
  • Gözlenebilirlik ile Entegre: Prometheus (ihracatçılar aracılığıyla çekme), Grafana/OTel (kenar günlüklerinden itme).

11) SEO и SPA/SSR

SWR ve kısa TTL ile SEO sayfaları hızlı ve taze.
Site haritası/robotlar - uzun süre önbelleğe alıyoruz, ancak yumuşak temizlemeye izin veriyoruz.
Service Worker: çevrimdışı önbelleğe alma, kritik yolların önceden belirlenmesi, hedeflenen güncellemeler.

12) Örnek yapılandırmalar ve başlıklar

12. 1 Önbellek-Kontrol profilleri

Parmak izi ile statik:

Cache-Control: public, max-age=31536000, immutable
HTML/SSR:

Cache-Control: public, max-age=60, s-maxage=600, stale-while-revalidate=60, stale-if-error=600
Surrogate-Control: max-age=600, stale-while-revalidate=120
API (önbelleğe alınmış vitrin):

Cache-Control: public, s-maxage=60
Vary: Accept-Encoding

12. 2 NGINX (origin) - sorgu/başlıklar normalleştirme

nginx map $arg_utm_source $utm_skip { default 1; "" 0; }
map $args $normalized_args {
default "";
"~(^    &)v=([a-z0-9]+)(&    $)" "v=$2";
}
proxy_cache_key "$scheme://$host$request_uri?$normalized_args";
add_header Surrogate-Key "product:{{id}} category:{{cat}}";

12. 3 Fastly VCL - yumuşak temizleme ve anahtarlar

vcl sub vcl_recv {
set req. hash += req. http. host req. url. path;
set req. hash += querystring. decode(req. url, "v,lang");
if (req. method == "PURGE") {
if (req. http. Fastly-Soft-Purge) { softpurge; } else { purge; }
return (synth(200, "purged"));
}
}
sub vcl_deliver {
set resp. http. Surrogate-Key = "product:42 category:food";
}

12. 4 Cloudflare Workers - İmzalı URL'ler

js export default {
async fetch(req, env) {
const url = new URL(req. url);
if (url. pathname. startsWith("/private/")) {
const token = url. searchParams. get("token");
if (!token! verify(token, env. SIGNING_KEY)) return new Response("Forbidden", { status: 403 });
}
return fetch(req);
}
}

12. 5 Lambda @ Edge - Coğrafi Seçenekler

js exports. handler = async (event) => {
const req = event. Records[0].cf. request;
const country = req. headers['cloudfront-viewer-country']?.[0]?.value          'US';
if (country === 'DE') req. headers['accept-language'] = [{ key:'Accept-Language', value:'de' }];
return req;
};

13) Özel veriler ve API

Anahtar yalıtımı olmadan özel yanıtları asla önbelleğe almayın (kullanıcı başına/belirteç başına).
İmzalı Çerezleri/Başlıkları ve 'Vary: Authorization'ı yalnızca sıkı denetimle kullanın (aksi takdirde - önbellek-büstü).
Güvenli alternatif: genel katmanı (önbelleğe alınmış) ve özel kapanımları (ESI/kenar bileşimi) ayırın.

14) Coğrafi/içerik kuralları

Lisanslama kısıtlamaları: kenarda coğrafi reddetme, kaynağı engellemek yerine yer tutucular.
Yaş/düzenleyici afişler - kenarda render (önbelleği delmeyin).

15) Anti-desenler

Tüm site için 'önbellek yok, mağaza yok' - CDN etkisinin kaybı.
Kararsız başlıklarda 'Vary' (örneğin, 'User-Agent') - kardinalite.
Her sürümde tüm önbelleği temizleyin.
SWR'siz kısa TTL'ler - kökene fırtına.
Kişisel sayfalar segmentasyon/belirteç anahtarları olmadan önbelleğe alınır.
Origin-shield eksikliği - çoklu paralel özlüyor.

16) Uygulama kontrol listesi (0-45 gün)

0-10 gün

Kaynakları kategorize edin: değişmez/HTML/API.
Gzip/br, HTTP/2/3, sorgu normalleştirmeyi etkinleştir, 'Vekil-Anahtar'.
SWR/IFE ve temel temizleme girin.

11-25 gün

Kenar görüntü optimizasyonu (yeniden boyutlandırma/format), origin-shield.
Özel medya, WAF/DDoS profilleri için imzalı URL'ler.
Panolar: isabet oranı, orijin getirileri, POP tarafından p95.

26-45 gün

Multi-CDN veya GSLB stratejisi, çevrede kanarya ağırlıkları.
Bölümleme/AB/geo için kenar hesaplama, tuşlarla yumuşak temizleme.
CI/CD'de otomatik ısınma ve temizleme entegrasyonu.

17) Olgunluk metrikleri

Bayt isabet oranı statik için %85 ≥ HTML/koşullu dinamikler için %60 ≥.
Origin RPS zirvelerde stabil ("fırtına" yok).
P95 TTFB, büyük bölgelerde ≥ %30 azaldı.
Olaylar için eski yanıtların %'si> %90 (kullanıcı zar zor fark edildi).
Serbest bırakma boru hatlarında temizleme anahtarlarının tam otomasyonu.

18) Sonuç

Etkili CDN devresi anahtarlar/TTL/seçenekler, engelli disiplini ve kenar mantığıdır. SWR/IFE, origin-shield, ortam optimizasyonu ve güçlü güvenlik (WAF, imzalı URL'ler) ekleyin. Metrikleri standartlaştırın ve temizlemeyi CI/CD'ye entegre edin - ve en yüksek yükler ve siyah kuğular için hazır, hızlı, ekonomik ve istikrarlı bir çevre elde edersiniz.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Telegram
@Gamble_GC
Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.