CDN we latency reduction
1) Gijikdirmegiň maksatlary we kartasy
Latency = DNS + TCP/TLS + TTFB (serwer/orijin/kesh) + mazmuny eltip bermek (RTT × göwrümler) + müşderi render.
Optimizasiýa = RTT sanyny azaldýarys, baýtlary azaldýarys we hasaplamalary/keşleri ulanyja has ýakyn geçirýäris.
2) CDN arhitekturasy
Anycast POPs - BGP ugry boýunça iň ýakyn düwün.
Tiered caching/Origin Shield - "saýawan" aralyk gatlagy, origin üstündäki miss-tupany peseldýär.
Geo-/Regional routing - tenantyň/ýurisdiksiýanyň baglanyşygy (maglumatlaryň özygtyýarlylygy, ygtyýarnamasy).
Failover - ätiýaçlyk origin/sebit, saglyk synaglary we çalt geçiş.
3) Nagt pul: açarlar, sözbaşylar, strategiýalar
3. 1 Keşiň açarlary (cache key)
'scheme + host + path +? query'.
Diňe zerur parametrleri goşuň ('? v =', '? lang =', '? tenant ='). Galanlary - ignore-params.
'Vary' - iň az: 'Accept-Encoding', 'Accept-Language' (eger hakykat zerur bolsa), 'Authorization' adatça nagt pullary döwýär.
3. 2 Syýasatlar
Public statics: 'Cache-Control: public, max-age = 31536000, immutable' + rev (adynda hash).
Ýarym dinamika (kataloglar, düzgünler, SSS): 's-maxage = 300, stale-while-revalidate = 600, stale-if-error = 86400'.
API-GET: ETag/Last-Modified, 'SWR/SIE' ulanyp, coalescing (gyzgyn açar üçin bir haýyş) goşuň.
Private: şahsy jogaplar - perimetrde edge-compute (ESI/kv) ýa-da per-tenant kesh arkaly.
3. 3 Anti-tupan
Request coalescing - bir wagtyň özünde miss soraglaryny döwmek.
Serve-stale - origin şowsuz bolanda köne obýekti bermek.
Background revalidation - fonda täzelemek.
4) HTTP/2-3, TCP/TLS we ir gaýdyp gelmek
HTTP/2: multiplex, sözbaşylaryň gysylmagy; 'max concurrent streams' -y çäklendiriň.
HTTP/3 (QUIC): ykjam/ýokary ýitgilerde TTFB-iň uly azalmagy; Initial-bosagalara we Retry-e gözegçilik ediň.
TLS 1. 3: 1-RTT handshake; OCSP stapling; HSTS.
0-RTT: diňe "GET" idempotentler üçin we replay töwekgelçiligi göz öňünde tutulsa.
103 Early Hints: irki 'Link: rel = preload' kritiki çeşmeler üçin.
Preconnect / DNS-prefetch: `<link rel="preconnect" href="https://cdn. example">`.
5) Edge-compute we "inçe şahsylaşdyrma"
Gyrasynda: başlyklaryň sanalmagy, geo/tenant-fiksasiýa, A/B-bellik, origin soralmazdan ýeňil şahsylaşdyrma.
Düzgün: PII-ni POP düwünlerinde saklamaň; Diňe agregatlary/köpçülige açyk maglumatlary kesmek.
6) Metbugaty we formatlary optimizirlemek
Suratlar: WebP/AVIF-e awtomatiki öwrülişik, resize-on-edge, 'srcset/sizes', 'lazyload'.
Gysyş: Tekstler üçin Brotli (HTML/CSS/JS/JSON), gzip fallback.
Wideo: HLS/DASH, CDN-segment caching, 'preload = metadata', afişa.
Şriftler: subset + 'font-display: swap'; Uzak nagt pul bilen hosting.
Möhüm CSS: ilkinji ekran; galanlary - async.
7) API-patternler we kesmek
Idempotent GET - soragyň açarlaryny (maglumatlaryň wersiýasyny goşmak bilen) kesýäris.
ETag: güýçli peýdaly ýük + 'If-None-Match'.
Surrogate-Control (CDN-aýratynlygy) 'Cache-Control' müşderisinden tapawutlanmak üçin.
Signed URLs - hususy statika/media üçin.
GraphQL: amallar/üýtgeýjiler boýunça kesh açaryny kadalaşdyryň; partial caching/rezolver keshini ulanyň.
WebSockets: real-time üçin - habarlary gysgaldyň, gysyň (permessage-deflate), WS şarlaryny ulanyja has ýakyn goýuň.
8) Konfigurasiýa mysallary
8. 1 NGINX (orijin: API-GET keş)
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, coalescing, ignore cookies)
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 (Transform Rules, Cache Rules, Early Hints — псевдо)
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) Ykjam ulgamlar we "durnuksyz" internet
Agressiw HTTP/3 ulanyň; möhüm ýoluň ululygyny azaldyň (HTML + critical CSS <14 KB).
Priority H2/H3: Ileri tutuň (HTML → CSS → JS → media).
Jitter bilen retraý syýasaty, API üçin idempotency.
Size-budgets we bandling: kod-splitting, deferred JS, ulanylmaýan CSS/JS aýyrmak.
10) Synlamak we SLO
RUM: Sebitler/ASN/tenantlar boýunça TTFB, LCP, INP, CLS; p95/p99 paýlanyşy.
Sintetika: POP-am boýunça "/health/cdn "gözegçilik ýoly.
Keş metrikleri: hit-ratio overall we per-key; origin fetch rate; coalescing savings.
Alertler: hit-ratio güýji, origin-egress ösüşi, H3 paýlarynyň zaýalanmagy, 5xx şield.
11) iGaming/Maliýe aýratynlyklary
Oýunlaryň kataloglary/koeffisiýentleri: gysga 's-maxage' + SWR; region-aware ключ (`tenant|region|lang`).
Wakalaryň iň ýokary nokatlary (oýunlar, çekeleşikler): keş gyzdyrmak (pre-warm), agyr şahsylaşdyrmalary "doňdurmak", mirror çeşmeleri.
Töleg/kabinet: Şahsy däl, ýöne H3 + edge-TLS we ýakyn sebit arkaly çaltlaşdyrmak.
Ýurisdiksiýalar: bölünen domenler/per-sebit ýollary; gözegçilik 'Wary: X-Region'.
12) Antipatternler
'Vary:' hemme zada; keş açary goşmaça kuklara/sözbaşylara baglydyr.
Origin gysga kesilende SWR/SIE → "gara ekranlar" ýok.
Bellikler/açarlar boýunça nokat maýyplygynyň ýerine "hemme zat boýunça" keşini arassalamak.
Atlaryň barlagy bolmadyk çeşmeler we s 'max-age = 0'.
'Authorization' üçin global deny-cache, hatda public berlen ýerlerde-de.
Originada coalescing → tupanyň ýoklugy.
POP-da wagtyndan öň "agyr" şahsylaşdyrma.
13) Prod-taýynlyk çek-sanawy
- Anycast POP + tiered/shield; saglyk barlaglary we origin failover.
- Kesiş açarlary iň az; "Surrogate-Control".
- SWR/SIE goşuldy, coalescing işjeň; serve-stale.
- HTTP/3 goşuldy; TLS 1. 3; 103 Early Hints möhüm çeşmeler üçin sazlanýar.
- Suratlar: AVIF/WebP, resize-on-edge; Brotli.
- API-GET с ETag/Last-Modified; idempotentlik/retra; Şahsy profilleri açmaň.
- Statika domenlerine Preconnect; möhüm CSS online.
- Metrikler: hit-ratio, origin-egress, TTFB/LCP p95, H3-paýy, sebitler/tenantlar boýunça.
- Wakalardan öň keş gyzdyrmak meýilnamasy; nokat maýyplygy (bellikler).
- Wary/keys/TTL resminamalary; wakalary oýnamak (hit-ratio ýykylmagy).
14) TL; DR
Orijine syýahaty iň pes derejä çenli azaldyň: tiered/shield + dogry cache-keys + SWR/SIE + coalescing. HTTP/3/TLS açyň 1. 3, 103 Early Hints we preconnect ulanyň. Metbugaty gyrada gysyň we öwüriň, möhüm CSS-ni ýapyň. API üçin - ETag, arassa "Vary", idempotentlik we akylly "GET" kesh. Hit-ratio, TTFB/LCP p95, origin egress ölçäň we iň ýokary derejedäki keş öňünden gyzdyryň.