GH GambleHub

CDN və edge-caching

CDN və edge-caching

1) Məqsədlər

CDN (Content Delivery Network) gizliliyi və origin yükünü azaldır: edge qovşaqlarında statik və şərti dinamik məzmunu keşləşdirir, miqyas, sabitlik və təhlükəsizliyi təmin edir (DDoS/WAF), edge məntiqi əlavə edir (cavabların/sorğuların yenidən yazılması, autentifikasiya, A/B).

2) Caching modeli və açarları

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

Tövsiyə olunur:
  • Query-i normallaşdırın ('utm _' çıxarın, 'v', 'lang', 'country' və s.).
  • 'Vary' -ni minimuma endirin (məsələn, 'Vary: Accept-Encoding, Accept-Language'), 'Vary:' -dən çəkinin.
  • API üçün - marşrutdan açar + versiyanın identifikatoru (semver, hash, build id) + lazımi query/headers (məsələn, 'X-Tenant').
  • Fərdi səhifələr üçün - edge seqmentasiyası (cookie/geo) və ya Skip-Cache.

3) TTL siyasətləri və başlıqlar

Əsas başlıqlar:
  • `Cache-Control: public, max-age=300, s-maxage=3600, stale-while-revalidate=60, stale-if-error=300`
  • 'Surrogate-Control' (dəstəklənərsə) - brauzerdən fərqli bir CDN siyasətidir.
  • 'ETag '/' Last-Modified' - şərti sorğular (304) və trafikə qənaət.
  • Şəxsi üçün: 'Cache-Control: private, no-store', əgər cache etmək mümkün deyilsə.
  • API cache imkan verir: 'Cache-Control: public, s-maxage = 60' + versiyası açar.

Tövsiyə olunan yanaşma: «əbədi» resurslar (fayl adında fingerprint ilə) → 'max-age = 31536000, immutable'; «səhifələr/JSON» → qısa TTL + SWR.

4) Əlillik: purge/soft-purge

Purge by URL: nöqtəli.
Purge by tag/key: qrup təmizləmələri ('Surrogate-Key: products: 42 category: food' istifadə edin).
Soft-purge: «köhnəlmiş» məzmunu qeyd edir, edge yeni versiya alınana qədər stale verir.
«İsti» istiləşmə: deploydan sonra əsas səhifələri bölgələrdən çəkin.

5) Edge performans nümunələri

Stale-While-Revalidate: «köhnəlmiş» nüsxə ilə sürətli cavab + fon yeniləmə.
Kritik resursların prefetch (preload, preconnect, dns-prefetch).
Compression: gzip/br (mətn üçün), zstd CDN tərəfindən dəstəklənərsə.
HTTP/2/3 (QUIC): multiplex və daha az gecikmə.
TLS session resumption və OCSP perimetri stapling.

6) Şəkillər və videolar

Image optimization at edge: resize/format negotiation (`Accept: image/avif,webp`), авто-WebP/AVIF, DPR-варианты.
Lazy-load и responsive (`srcset`, `sizes`).
Video: HLS/DASH, fragmented MP4, origin-shield (mərkəzi cache) «fırtına» azaltmaq üçün.
Thumbnail xidmətləri və şəxsi görüntülər üçün işarəli URL.

7) Perimetr təhlükəsizliyi

WAF: OWASP qaydaları, ölkələrin bloklanması/ASN, açar ilə rate-limits (IP + cookie + token).
DDoS: L3/4 scrubbing, L7-checker, JS-challenge/turnstile.
Şəxsi resurslar üçün imzalanmış URL/cookies (video/hesabatlar): TTL + HMAC/EdDSA.
Geo-fencing və uyğunluq (məsələn, bölgələrin qadağan edilməsi).

8) Edge-compute (kənarda məntiq)

Cases:
  • Kəsilmədən cache personalization: seqmentlər (A/B), geo, dil edge və məzmun - cached.
  • Cavabların/başlıqların yenidən yazılması, redaktorlar, AB-split.
  • Token autentifikasiyası: JWT imzasının yoxlanılması, açarın bağlanması.
  • Canary cookies/percent: trafikin bir hissəsi - yeni backend.

Texnologiya nümunələri: Cloudflare Workers/Durable Objects, Fastly Compute @Edge, AWS Lambda @Edge.

9) Multi-CDN və qlobal perimetr

Səbəbləri: əhatə dairəsi, SLA, dəyəri, regional məhdudiyyətlər, hadisələrin izolyasiyası.
GSLB/Traffic Steering: geo/latency/real səhvlər üzrə; bir neçə vantage nöqtələrindən sağlamlıq-yoxlamalar.
Vahid açar/başlıq sxemi (Surrogate-Key), sinxronlaşdırılmış purge qaydaları.
Origin-shield əlilliyi ilə origin «vurmaq» deyil, bütün CDN üçün ümumi.

10) Loging və metrika

Yığın:
  • Hit ratio (cache, CDN → edge/origin), byte hit ratio.
  • Latency p50/p95/p99, error-rate kod/marşrut.
  • Origin fetches: RPS/bayt/səhvlər (həddindən artıq səhvlərdən qorunma).
  • Regional qrafiklər (POP/ASN/ölkə üzrə).
  • Observability ilə inteqrasiya edin: Prometheus (ixracatçılar vasitəsilə pull), Grafana/OTel (edge-loqlardan push).

11) SEO и SPA/SSR

SWR və qısa TTL ilə SEO səhifələri - tez və «təzə».
Sitemap/robots - uzun müddət önbellək, lakin yumşaq purge icazə.
Xidmət Worker: offline-caching, kritik yollar prefetch, hədəf yeniləmələr.

12) Konfiqurasiya və başlıq nümunələri

12. 1 Cache-Control profilləri

fingerprint ilə 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 (cached vitrin):

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

12. 2 NGINX (origin) - query/headers normallaşması

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 - yumşaq purge və açarlar

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 - imzalanmış URL

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 - Geo variantları

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) Şəxsi məlumatlar və API

Heç vaxt xüsusi cavabları açarı təcrid etmədən (per-user/per-token) cache etməyin.
Signed Cookies/Headers və 'Vary: Authorization' yalnız ciddi nəzarət altında istifadə edin (əks halda - cache-bust).
Təhlükəsiz alternativ: ictimai təbəqəni (cached) və şəxsi inkludları (ESI/edge kompozisiyası) bölün.

14) Geo/məzmun qaydaları

Lisenziya məhdudiyyətləri: edge geo-deny, origin kilidi əvəzinə playsholders.
Yaş/tənzimləyici bannerlər - edge-də render (cache-dən keçməyin).

15) Anti-nümunələr

'no-cache, no-store' bütün site üçün → CDN effekti itkisi.
Qeyri-sabit başlıqlara görə 'Vary' (məsələn, 'User-Agent') → kardinallıq.
Hər buraxılışda bütün cache təmizlənməsi.
SWR olmadan qısa TTL → origin «fırtına».
Şəxsi səhifələr seqmentasiya/token açarları olmadan keşləşdirilir.
Origin-shield → bir neçə paralel səhv yoxdur.

16) Giriş çek siyahısı (0-45 gün)

0-10 gün

Resursları kateqoriya: statik (immutable )/HTML/API.
gzip/br, HTTP/2/3, query normallaşdırılması, 'Surrogate-Key' daxil edin.
SWR/IFE və əsas purge daxil edin.

11-25 gün

Edge-image optimizasiyası (resize/format), origin-shield.
Şəxsi media üçün imzalanmış URL, WAF/DDoS profilləri.
Dashboard: hit ratio, origin fetches, p95 POP.

26-45 gün

Multi-CDN və ya GSLB strategiyası, perimetrdə kanarya çəkisi.
/ AV/geo seqmentasiyası üçün Edge-compute, açarları yumşaq-purge.
Avtomatik qızdırma və CI/CD purge inteqrasiya.

17) Yetkinlik metrikası

Byte hit ratio ≥ 85% statika üçün, ≥ 60% HTML/şərti dinamika üçün.
Origin RPS zirvə sabit (heç bir «fırtına»).
p95 TTFB əsas bölgələrdə 30% ≥ azaldılıb.
% stale hadisə cavabları> 90% (istifadəçi demək olar ki, fərq etmədi).
Buraxılış payplaynda purge-açar tam avtomatlaşdırma.

18) Nəticə

Effektiv CDN konturu açarlar/TTL/variantları, əlillik intizamı və edge-məntiqdir. SWR/IFE, origin-shield, media optimizasiyası və ciddi təhlükəsizlik (WAF, imzalanmış URL) əlavə edin. Metrləri standartlaşdırın və purge-ni CI/CD-yə inteqrasiya edin - və pik yüklərə və qara qu quşlarına hazır sürətli, qənaətli və davamlı bir perimetr əldə edəcəksiniz.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

Telegram
@Gamble_GC
İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.