GH GambleHub

CDN ve gecikme azaltma optimizasyonu

1) Hedefler ve gecikme haritası

Gecikme = DNS + TCP/TLS + TTFB (sunucu/kaynak/önbellek) + içerik iletimi (RTT × birimleri) + istemci oluşturma.
Optimizasyon = RTT sayısını azaltır, baytları azaltır ve hesaplama/önbelleği kullanıcıya yaklaştırır.

2) CDN mimarisi

Anycast POP'lar yakın uçlu bir BGP yönlendirme düğümüdür.
Katmanlı önbellekleme/Origin Shield - orijindeki fırtınayı azaltan bir "şemsiye'ara katmanı.
Coğrafi/Bölgesel yönlendirme - kiracının/yargı alanının bağlanması (veri egemenliği, lisanslar).
Yük devretme - yedekleme kaynağı/bölgesi, sağlık örnekleri ve hızlı anahtar.

3) Önbellek: anahtarlar, başlıklar, stratejiler

3. 1 Önbellek anahtarları

Varsayılan değer 'scheme + host + path +? Sorgu '.
Sadece istediğiniz parametreleri ekleyin ('? v = ','? Lang = ','? kiracı = '). Diğerleri görmezden gelme-paramlarında.
'Vary' - minimal: 'Accept-Encoding', 'Accept-Language' (gerekirse), 'Authorization' usually breaks the cache.

3. 2 Politikalar

Genel statik: 'Cache-Control: public, max-age = 31536000, immutable' + rev (hash in name).
Yarı dinamik (dizinler, kurallar, SSS):'s-maxage = 300, bayat while-revalidate = 600, bayat-if-error = 86400 '.
API-GET: ETag/Last-Modified, 'SWR/SIE' kullanın, birleştirmeyi etkinleştirin (bir sıcak anahtar için bir istek).
Özel: kişisel yanıtlar - kenar hesaplama (ESI/kv) veya kiracı başına önbellek aracılığıyla çevre üzerinde.

3. 3 Anti-fırtına

Birleştirme isteği - eşzamanlı bayan isteklerini daraltın.
Serve-stale - köken başarısız olduğunda eski bir nesne verin.
Arka plan yeniden değerleme - arka planda güncelleme.

4) HTTP/2-3, TCP/TLS ve erken dönüş

HTTP/2: multiplex, başlık sıkıştırma; 'max eşzamanlı akışları', büyük başlıkları sınırlayın.
HTTP/3 (QUIC): mobil/yüksek kayıp TTFB büyük düşüş; Initial-rapids ve Retry'ye göz kulak ol.
TLS 1. 3: 1-RTT el sıkışma; OCSP zımbalama; HSTS.
0-RTT: sadece idempotent 'GET' için ve tekrarlama riskleri dikkate alınırsa.
103 Erken İpuçları: Kritik kaynaklar için erken 'Link: rel = preload'.
Preconnect/DNS-prefetch: '<link rel = "preconnect" href = "https ://cdn. Örnek">'.

5) Kenar hesaplama ve'ince kişiselleştirme "

Kenarda: başlık sayımı, coğrafi/kiracı sabitleme, A/B işaretleme, bir köken sormadan kolay kişiselleştirme.
Kural: PII'yi POP düğümlerinde saklamayın; Yalnızca önbellek kümeleri/genel veriler.

6) Ortam ve formatların optimize edilmesi

Görüntüler: WebP/AVIF'e otomatik dönüştürme, kenardaki yeniden boyutlandırma, 'srcset/size', 'lazyload'.
Sıkıştırma: Metinler için brotli (HTML/CSS/JS/JSON), gzip fallback.
Video: HLS/DASH, CDN-segment önbelleğe alma, 'preload = metadata', poster.
Fontlar: alt küme + 'font-display: swap'; Uzun önbelleğe sahip ana bilgisayar.
Kritik CSS: satır içi ilk ekran; Gerisi async.

7) API desenleri ve önbelleğe alma

Idempotent GET - istek anahtarlarına göre önbelleğe alıyoruz (veri sürümü dahil).
ETag: Güçlü yük hash + 'If-None-Match'.
'Cache-Control' istemcisinden ayırt etmek için Surrogate-Control (CDN'ye özgü).
İmzalı URL'ler - özel statik/ortam için.
GraphQL: anahtar önbelleğini işlem/değişkenlere göre normalleştirir; Kısmi önbellek/çözümleyici önbelleği kullanın.
WebSockets: gerçek zamanlı için - mesajları kısaltın, sıkıştırın (permessage-deflate), WS-parçalarını kullanıcıya daha yakın konumlandırın.

8) Yapılandırma örnekleri

8. 1 NGINX (köken: API-GET'i önbelleğe alıyoruz)

nginx
We give SWR and ETag location/api/v1/catalog/{
proxy_cache api_cache;
proxy_cache_key "$scheme$request_method$host$uri$is_args$args";
proxy_cache_valid 200 5m;
proxy_cache_use_stale updating error timeout http_500 http_502 http_503 http_504;
add_header Cache-Control "public, s-maxage=300, stale-while-revalidate=600, stale-if-error=86400";
add_header ETag $upstream_http_etag;
proxy_ignore_headers Set-Cookie; # do not break the Set-Cookie proxy_hide_header cache;
proxy_pass http://catalog;
}

8. 2 Fastly VCL (SWR, birleştirme, çerezleri yoksay)

vcl sub vcl_recv {
set req. hash_ignore_busy = true;   # coalescing if (req. url. qs ~ "^(?!.(lang    v)=)") { remove req. url. qs; }
if (req. http. Cookie) { remove req. http. Cookie; }
}

sub vcl_backend_response {
set beresp. ttl = 300s;
set beresp. stale_if_error = 86400s;
set beresp. stale_while_revalidate = 600s;
if (beresp. http. Set-Cookie) { unset beresp. http. Set-Cookie; }
}

8. 3 Cloudflare (Dönüşüm Kuralları, Önbellek Kuralları, Erken İpuçları - псевдо)

json
{
"cache_rule": {
"if": "http. request. uri. path matches \"/assets/.\"",
"action": {"cache": {"eligibility":"eligible", "ttl": 31536000}}
},
"transform_rule": {
"set_headers": [{"name":"Cache-Control","value":"public, s-maxage=300, stale-while-revalidate=600"}]
},
"early_hints": {"enable": true}
}

9) Mobil ağlar ve "dengesiz" İnternet

HTTP/3 agresif kullanın; Kritik yolun boyutunu küçültün (HTML + kritik CSS <14 KB).
Öncelik H2/H3: Önceliklendirme (HTML - CSS - JS - daha sonra medya).
Politikayı jitter ile retray, API için idempotency.
Boyut bütçeleri ve paketleme: kod bölme, ertelenmiş JS, kullanılmayan CSS/JS'yi kaldırma.

10) Gözlemlenebilirlik ve SLO

RUM: TTFB, LCP, INP, CLS bölgelere göre/ASN/kiracılar; P95/p99 dağılımları.
Sentetikler: POP-s tarafından kontrol yolu "/sağlık/cdn ".
Önbellek metrikleri: genel ve anahtar başına isabet oranı; köken getirme oranı; Tasarrufları birleştirmek.
Uyarılar: isabet oranı düşüşü, origin-çıkış artışı, H3-fraction bozulması, kalkan başına 5xx.

11) iGaming/Finansın Özellikleri

Oyun katalogları/oran: kısa's-maxage '+ SWR; Bölgeye duyarlı ключ ('kiracı' region 'lang').
Olay zirveleri (eşleşmeler, çekilişler): önbellek ısınması (önceden sıcak), ağır kişiselleştirmelerin "dondurulması", ayna kaynakları.
Ödeme/kabin: özel önbelleğe almayın, ancak H3 + edge-TLS ve kapatma bölgesi ile hızlandırın.
Yargı bölgeleri: bölge başına bölünmüş alanlar/yollar; 'Vary: X-Bölgesi' kontrolü.

12) Antipatterns

'Vary:'her konuda; Önbellek anahtarı gereksiz çerezlere/başlıklara bağlıdır.
SWR/SIE eksikliği: Kısa orijin hataları için siyah ekranlar.
Etiketler/anahtarlar ile nokta sakatlığı yerine'her yerde "önbelleği temizleyin.
İsim revizyonu olmayan ve 'max-age = 0' olan kaynaklar.
Herkese açık verilen yerlerde bile 'Yetkilendirme' için global reddetme önbelleği.
Birleşme eksikliği - orijinde fırtına.
POP'da erken'ağır "kişiselleştirme.

13) Prod Hazırlık Kontrol Listesi

  • Anycast POP + katmanlı/kalkan; Sağlık kontrolleri ve orijin yük devretme.
  • Önbellek anahtarları minimumdur; Gereksiz sorguları/çerezleri görmezden gelin; 'Vekil-Kontrol'.
  • SWR/SIE etkin, birleştirici etkin; hizmet-bayat hatalar.
  • HTTP/3 etkin; TLS 1. 3; 103 Erken İpuçları kritik kaynaklar için yapılandırılmıştır.
  • Görüntüler: AVIF/WebP, kenarda yeniden boyutlandırma; Şarkı sözleri için Brotli.
  • API-GET с ETag/Last-Modified; idempotency/geri çekilmeler; Özel profilleri önbelleğe almayın.
  • Statik alanlara önceden bağlanma; Kritik CSS sıralı.
  • Metrikler: isabet oranı, köken çıkışı, TTFB/LCP p95, H3-share, bölgeye/kiracıya göre.
  • Olaylardan önce önbellek ısınma planı; Nokta sakatlığı (etiketler).
  • Vary/keys/TTL belgeleri; Olayların oyun kitabı (isabet oranı düşüşü).

14) TL; DR

Başlangıç noktasına doğru yürüyüşe en az düzeyde devam edin: katmanlı/kalkan + uygun önbellek tuşları + SWR/SIE + birleştirme. HTTP/3/TLS 1'i açın. 3, 103 Erken İpuçları kullanın ve preconnect. Kritik CSS satır içi, kenardaki medyayı sıkıştırın ve dönüştürün. API için - ETag, düzgün 'Vary', idempotency ve makul önbellekleme 'GET'. Hit-ratio, TTFB/LCP p95, origin çıkış değerini ölçün ve tepe noktalarında önbelleği önceden ısıtın.

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!

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.