CDN we edge kesmek
CDN we edge-kesh
1) Maksatlar
CDN (Content Delivery Network) gizlinligi we origin ýüküni peseldýär: edge-düwünlerdäki statiki we şertli dinamiki mazmuny kesýär, gerimi, durnuklylygy we howpsuzlygy üpjün edýär (DDoS/WAF), edge-logikany goşýar (jogaplary/soraglary täzeden ýazmak, tassyklamak, A/B).
2) Kesmek modeli we açarlary
Ключ кеша = `scheme + host + path +?(selected query params) + headers (Vary)`
Maslahat berilýär:- Query ('utm _' -ni aýyryň, 'v', 'lang', 'country' we ş.m.).
- 'Vary' -ni minimallaşdyrmak ('Vary: Accept-Encoding, Accept-Language'), 'Vary:' -den gaça durmak.
- API üçin - marşrutdan açar + wersiýanyň identifikatory (semver, hash, build id) + zerur query/headers (mysal üçin 'X-Tenant').
- Şahsy sahypalar üçin - edge segmentasiýasy (cookie/geo) ýa-da Skip-Cache.
3) TTL syýasatlary we sözbaşylar
Esasy sözbaşylar:- `Cache-Control: public, max-age=300, s-maxage=3600, stale-while-revalidate=60, stale-if-error=300`
- 'Surrogate-Control' (eger goldanylsa) - brauzerden başga CDN üçin aýratyn syýasat.
- 'ETag '/' Last-Modified' - şertli soraglar (304) we traffigi tygşytlamak.
- Şahsy adam üçin: 'Cache-Control: private, no-store'.
- Cache-Control: public, s-maxage = 60 '+ wersiýasy boýunça açar.
Maslahat berlen çemeleşme: "baky" çeşmeler (fingerprint bilen fingerprint) → 'max-age = 31536000, immutable'; "page/JSON" → gysga TTL + SWR.
4) Maýyplyk: purge/soft-purge
Purge by URL: nokat.
Purge by tag/key: toparlaýyn arassalamak ('Surrogate-Key: products: 42 category: food' ulanyň).
Soft-purge: mazmuny "köne" diýip belläň, edge täze wersiýa alynýança stale berýär.
"Ýyly" gyzdyrma: deploiden soň sebitlerden esasy sahypalary çekiň.
5) Öndürijiligiň edge-patternleri
Stale-While-Revalidate: "köne" göçürme bilen çalt jogap + fon täzelenmesi.
Möhüm çeşmeler prefetch (preload, preconnect, dns-prefetch).
Compression: gzip/br (tekst üçin), CDN tarapyndan goldanylsa zstd.
HTTP/2/3 (QUIC): multiplexlemek we has az latentlik.
TLS session resumption we OCSP stapling perimetrde.
6) Suratlar we wideolar
Image optimization at edge: resize/format negotiation (`Accept: image/avif,webp`), авто-WebP/AVIF, DPR-варианты.
Lazy-load и responsive (`srcset`, `sizes`).
Wideo: HLS/DASH, fragmented MP4, origin-shield (merkezi keş) "tupanlary" azaltmak üçin.
Şahsy şekiller üçin "Thumbnail Services" we "Signed URLs".
7) Perimetriň howpsuzlygy
WAF: OWASP düzgünleri, ýurtlary blokirlemek/ASN, açar bilen rate-limits (IP cookie + token).
DDoS: L3/4 scrubbing, L7-çekerler, JS-kynçylyklar/turnstile.
Şahsy çeşmeler üçin gol çekilen URL/cookie (wideo/hasabat): TTL + HMAC/EdDSA.
Geo-fencing we gabat gelmek (mysal üçin sebitlere gadaganlyk).
8) Edge-compute (gyrada logika)
Wakalar:- Kese girmezden şahsylaşdyrmak: segmentler (A/B), geo, dil edge, mazmun bolsa kese çykarylýar.
- Jogaplaryň/sözbaşylaryň, redaksiýalaryň, AB-bölünişikleriň täzeden ýazylmagy.
- Token tassyklamasy: JWT goluny barlamak, açara baglanyşyk.
- Canary cookie/percent: traffigiň bir bölegi - täze backend.
Tehnologiýa mysallary: Cloudflare Workers/Durable Objects, Fastly Compute @Edge, AWS Lambda @Edge.
9) Multi-CDN we global perimetri
Sebäpleri: örtük, SLA, bahasy, sebitleýin çäklendirmeler, hadysalaryň izolýasiýasy.
GSLB/Traffic Steering: geo/latency/hakyky ýalňyşlyklar boýunça; birnäçe vantage nokatlaryndan health-checks.
Bitewi açar/sözbaşy shemasy (Surrogate-Key), sinhronlaşdyrylan purge düzgünleri.
Origin-shield, maýyplyk döwründe origini "urmazlyk" üçin ähli CDN-ler üçin umumy.
10) Logirleme we metrika
Toplaň:- Hit ratio (cache, CDN → edge/origin), byte hit ratio.
- Latency p50/p95/p99, kod/ugur boýunça error-rate.
- Origin fetches: RPS/bayt/ýalňyşlyklar (artykmaç ýalňyşlyklardan goramak).
- Sebitleýin grafikler (POP/ASN/ýurt boýunça).
- Observability: Prometheus (eksport edijiler arkaly pull), Grafana/OTel (edge-bloglardan push) bilen birleşdiriň.
11) SEO и SPA/SSR
SWR we gysga TTL SEO sahypalary - çalt we "täze".
Sitemap/robots - uzak wagtlap kesişýäris, ýöne soft-purge-e rugsat beriň.
Hyzmat Worker: offline-kesmek, möhüm ýollar prefetch, maksatly täzelenmeler.
12) Konfigurasiýalaryň we sözbaşylaryň mysallary
12. 1 Cache-Control profilleri
Fingerprint bilen statika:
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 (kesilen penjire):
Cache-Control: public, s-maxage=60
Vary: Accept-Encoding
12. 2 NGINX (origin) - kadalaşma query/headers
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 - soft-purge we 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 - gol çekilen 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-wariantlar
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) Şahsy maglumatlar we API
Şahsy jogaplary hiç haçan açary izolýasiýa etmezden kesmäň (per-ulanyjy/per-token).
"Signed Cookies/Headers" we "Vary: Authorization" -y diňe berk gözegçilik astynda ulanyň (ýogsam - cache-bust).
Howpsuz alternatiwa: köpçüligiň gatlagyny (kesilen) we şahsy öz içine alýan (ESI/edge-kompozisiýa) bölüň.
14) Geo/mazmun düzgünleri
Ygtyýarnama çäklendirmeleri: geo-deny edge, pleýsholderler origin blokirlemegiň ýerine.
Ýaş/düzgünleşdiriji bannerler - edge-de render (kese urma).
15) Anti-patternler
'no-cache, no-store' tutuş sahypa üçin → CDN täsirini ýitirmek.
Durnuksyz sözbaşylar boýunça 'Vary' (mysal üçin 'User-Agent') → kardinallyk.
Her çykylanda ähli keşleri arassalaň.
SWR-siz gysga TTL → origin-de "tupan".
Şahsy sahypalar segmentasiýa/belgi açarsyz kesilýär.
Origin-shield → birnäçe paralel ýalňyşlyklar.
16) Giriş çek-sanawy (0-45 gün)
0-10 gün
Resurslary kategoriýalaşdyrmak: statika (immutable )/HTML/API.
Gzip/br, HTTP/2/3, query, 'Surrogate-Key' -ni öz içine alyň.
SWR/IFE we esasy purge giriň.
11-25 gün
Şekilleriň edge-optimizasiýasy (resize/format), origin-shield.
Şahsy media üçin gol çekilen URL, WAF/DDoS profilleri.
Daşbordlar: hit ratio, origin fetches, p95 POP.
26-45 gün
Multi-CDN ýa-da GSLB-strategiýasy, perimetrde kanar agramy.
Segmentasiýa üçin Edge-compute/AV/geo, açarlar boýunça soft-purge.
Awto-gyzdyrma we purge-iň CI/CD-e integrasiýasy.
17) Kämillik ölçegleri
Byte hit ratio ≥ statika üçin 85%, HTML/şertli dinamika üçin ≥ 60%.
Origin RPS iň ýokary derejelerde durnukly ("tupan" ýok).
p95 TTFB esasy sebitler boýunça 30% ≥ azaldyldy.
% stale hadysalarynda jogap> 90% (ulanyjy duýmady diýen ýaly).
Doly purge-açar awtomatlaşdyrylmagy.
18) Netijenama
CDN-iň täsirli kontury - açarlar/TTL/wariantlar, maýyplyk düzgüni we edge-logika. SWR/IFE, origin-shield, media optimizasiýasy we berk howpsuzlyk (URL-ler bilen gol çekilen WAF) goşuň. Ölçegleri standartlaşdyryň we purge-ni CI/CD-e birleşdiriň - iň ýokary ýüklere we gara guşlara taýyn çalt, tygşytly we durnukly perimetri alarsyňyz.