GH GambleHub

CDN și optimizarea reducerii latenței

1) Obiective și harta de întârziere

Latență = DNS + TCP/TLS + TTFB (server/origine/memorie cache) + livrare de conținut (volume RTT ×) + randare client.
Optimizare = reduce numărul de RTTs, reduce octeți, și muta de calcul/cache mai aproape de utilizator.

2) arhitectura CDN

Anycast POP este un nod de rutare BGP aproape de sfârșit.
Tiered caching/Origin Shield - un strat intermediar „umbrelă”, care reduce furtuna dor de origine.
Geo-/Regional routing - obligativitatea chiriasului/jurisdictiei (suveranitatea datelor, licente).
Failover - origine/regiune de rezervă, probe de sănătate și comutator rapid.

3) Cache: chei, antete, strategii

3. 1 chei cache

Implicit este "schema + gazdă + cale +? interogare ".
Adăugați numai parametrii pe care doriți ('? v = ','? lang = ','? chiriaș = '). Restul sunt în ignore-params.
'Vary' - minim: 'Accept-Encoding', 'Accept-Language' (dacă este necesar), 'Autorizare' sparge cache-ul.

3. 2 Politici

Statica publică: 'Cache-Control: public, max-age = 31536000, imuabil' + rev (hash în nume).
Jumătate de dinamică (directoare, reguli, întrebări frecvente): 's-maxage = 300, stale-while-revalidate = 600, stale-if-error = 86400'.
API-GET: utilizați ETag/Last-Modified, 'SWR/SIE', activați coalescing (o cerere pentru o cheie fierbinte).
Privat: răspunsuri personale - pe perimetrul prin edge-computer (ESI/kv) sau per-chiriaș cache.

3. 3 Anti-furtună

Cerere de coalescing - colaps cereri simultane dor.
Serviți-vechi - dați un obiect depășit atunci când originea eșuează.
Revalidare fundal - actualizare în fundal.

4) HTTP/2-3, TCP/TLS și întoarcerea timpurie

HTTP/2: multiplex, compresie antet; limit 'max fluxuri concurente', antete mari.
HTTP/3 (QUIC): scădere majoră a TTFB mobil/pierdere mare; Fii cu ochii pe Iniţial-rapids şi Retry.
TLS 1. 3: strângere de mână 1-RTT; Capsarea OCSP; HSTS.
0-RTT: numai pentru „GET” idempotent și dacă sunt luate în considerare riscurile de reluare.
103 Early Hints: Early 'Link: rel = preîncărcare' pentru resurse critice.
Preconnect/DNS-prefetch: '<link rel = "preconnect" href = "https ://cdn. exemplul">'.

5) Edge-calcul și „personalizare fină”

Pe muchie: recensământ titlu, fixare geo/chiriaș, marcare A/B, personalizare ușoară fără a cere o origine.
Regulă: nu stoca PII pe nodurile POP; numai agregate cache/date publice.

6) Optimizarea mass-media și formate

Imagini: conversie automată în WebP/AVIF, redimensionare pe margine, „srcset/mărimi”, „lazyload”.
Compresie: Brotli pentru texte (HTML/CSS/JS/JSON), rezervă gzip.
Video: HLS/DASH, CDN-segment caching, 'preload = metadate', poster.
Fonturi: subset + 'font-display: swap'; gazdă cu memorie cache lungă.
CSS critic: primul ecran inline; restul este async.

7) modele API și cache

Idempotent GET - ne cache de chei de cerere (inclusiv versiunea de date).
ETag: Încărcătură utilă puternică + „If-None-Match”.
Surogat-Control (specific CDN) pentru a distinge de clientul 'Cache-Control'.
URL-uri semnate - pentru privat static/media.
GraphQL: normalizați memoria cache cheie prin operare/variabile; utilizați memoria cache/resolver cache parțială.
WebSockets: pentru mesaje în timp real - scurta, comprima (permessage-dezumflare), poziția WS-cioburi mai aproape de utilizator.

8) Exemple de configurare

8. 1 NGINX (origine: am memorie cache API-GET)

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, ignora cookie-uri)

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 (Reguli de transformare, Reguli de cache, Sugestii timpurii - псевдо)

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) Rețele mobile și Internet „instabil”

Utilizați HTTP/3 agresiv; reduce dimensiunea căii critice (HTML + critic CSS <14 KB).
Prioritate H2/H3: Prioritizare (HTML→CSS→JS→media mai târziu).
Politica Retray cu jitter, idempotenta pentru API.
Dimensiune-bugete și grupare: cod-divizare, amânat JS, eliminarea CSS neutilizate/JS.

10) Observabilitate și SLO

ROM: TTFB, LCP, INP, CLS pe regiuni/ASN/chiriași; distribuții p95/p99.
Sintetice: ruta de control "/sănătate/cdn' prin POP-s.
Valori cache: hit-ratio global și per cheie; rata de preluare a originii; economii de coagulare.
Alerte: scăderea raportului de lovire, creșterea originii-ieșire, degradarea H3-fraction, 5xx pe scut.

11) Specificul iGaming/Finanțe

Cataloage/cote de joc: short 's-maxage' + SWR; ключ conștiente de regiune ("chiriaș" region 'lang ").
Vârfuri de eveniment (meciuri, desene): încălzirea cache-ului (pre-cald), „înghețarea” personalizărilor grele, sursele de oglindă.
Plata/cabinet: nu cache privat, dar accelera prin H3 + edge-TLS și închide regiunea.
Jurisdicții: domenii/căi împărțite pe regiune; 'Vary: X-Region' control.

12) Antipattern

„Vary:” pe tot; tasta cache depinde de cookie-urile/anteturile inutile.
Lipsa de SWR/SIE → ecrane negre pentru eșecuri de origine scurtă.
Ștergeți memoria cache „peste tot” în loc de handicap punct de tag-uri/chei.
Resurse fără revizuirea numelui și cu 'max-age = 0'.
Global nega-cache pentru „Autorizare” chiar și în cazul în care public este dat.
Lipsa de coagulare → furtunii asupra originii.
Personalizare prematură „grea” pe POP.

13) Lista de verificare Prod Readiness

  • Anycast POP + pe niveluri/scut; controalele de sănătate și eșecul originii.
  • Cheile cache sunt minime; ignora interogarile/cookie-urile inutile; „Surogat-Control”.
  • SWR/SIE activat, coalescing activ; servi-vechi pe erori.
  • HTTP/3 activat; TLS 1. 3; 103 Early Hints este configurat pentru resurse critice.
  • Imagini: AVIF/WebP, redimensionare pe margine; Brotli pentru versuri.
  • API-GET с ETag/Ultima modificare; idempotență/retrageri; nu cache profiluri private.
  • Preconectarea la domeniile statice; critică CSS inline.
  • Metrics: hit-ratio, origin-egress, TTFB/LCP p95, H3-share, pe regiuni/chiriași.
  • Planul de încălzire a memoriei cache înainte de evenimente; handicap punct (etichete).
  • Variază/chei/documentație TTL; playbook de incidente (scădere a raportului de succes).

14) TL; DR

Păstrați drumeții la o origine la un nivel minim: niveluri/scut + corespunzătoare cache-chei + SWR/SIE + coalescing. Porneşte HTTP/3/TLS 1. 3, utilizați 103 Early Hints și preconnect. Comprimați și convertiți suporturi la margine, CSS critic inline. Pentru API - ETag, îngrijit „Vary”, idempotență și caching rezonabil „GET”. Măsurați raportul de succes, TTFB/LCP p95, ieșirea de origine și încălzirea memoriei cache în avans la vârfuri.

Contact

Contactați-ne

Scrieți-ne pentru orice întrebare sau solicitare de suport.Suntem mereu gata să ajutăm!

Pornește integrarea

Email-ul este obligatoriu. Telegram sau WhatsApp sunt opționale.

Numele dumneavoastră opțional
Email opțional
Subiect opțional
Mesaj opțional
Telegram opțional
@
Dacă indicați Telegram — vă vom răspunde și acolo, pe lângă Email.
WhatsApp opțional
Format: cod de țară și număr (de exemplu, +40XXXXXXXXX).

Apăsând butonul, sunteți de acord cu prelucrarea datelor dumneavoastră.