Tehnologii și infrastructură → CDN-uri și conținut Caching
CDN-uri și cache-uri de conținut
1) De ce CDN și cache
CDN (Content Delivery Network) reduce RTT și TTFB, descarcă originea și stabilizează cozile P95/P99. Pentru iGaming/fintech, acestea sunt:- Rapid primul octet pentru catalog, active, promo, mass-media.
- Stabilitate maximă (turnee/evenimente) fără creștere explozivă a capacităților de origine.
- Economii de ieșire și costuri previzibile.
- Geo-control (reglementare, licențiere de conținut).
2) Strategii de bază de caching
2. 1 Răspunsuri care pot fi cache
Static: JS/CSS/fonturi/pictograme - TTL lung (30-365 zile) + fișier-hash în nume.
Semi-static: cataloage de jocuri, bannere, configurații - TTL de la minute la ore + 'stale-while-revalidate'.
API GET/HEAD: directoare, prețuri, plafoane - TTL scurt (5-120 sec) cu cheia corectă.
2. 2 Titluri
'Cache-Control: public, max-age = 600, stale-while-revalidate = 300, stale-if-error = 600'
„ETag ”/„ Ultima modificare” pentru revalidare.
„Surogat-Control ”/„ CDN-Cache-Control” (dacă furnizorul acceptă).
Pentru date private: 'Cache-Control: no-store' (nu doar 'no-cache').
2. 3 Cheie cache
Baza: metoda + calea URL + parametrii de interogare care afectează răspunsul.
Adăugări: 'Accept-Encoding' (gzip/br), 'Accept' (json/webp/avif), locale ('Accept-Language'), regiune/monedă dacă conținutul este afectat.
Evitați anteturile accidentale (cookie-uri, id-uri de urme) în cheie.
3) Variază managementul și cookie-urile
'Vary: Accept-Encoding, Accept, Accept-Language' este setul minim necesar.
Decuparea cookie-urilor CDN pentru căile cache: eliminați totul, cu excepția listelor albe (de ex. Pavilioane AB).
Transferul identificatorilor de sesiune către subdomenii/căi din afara conținutului cache.
4) TTL și modele de prospețime
Static imuabil: 'Cache-Control: public, max-age = 31536000, imuabil' + versiuni în numele fișierului.
SWRO/SIE: „Stale-în timp ce-revalidate” și „vechi-dacă-eroare” - UX-rezistență la problemele de origine.
TTL partiționat: lista de rădăcini a jocurilor - 30-60 secunde; carte de joc - 5-10 minute; bannere - 30 min.
amestec API: cărți de referință de bază - 5-30 min; valute/limite - 1-5 min; leadboard ― 2-15 sec.
5) Caching pe niveluri и scut de origine
Cache-uri pe niveluri/regionale: Cererile care trec marginea se luptă în „scutul” regional în loc de origine.
Avantaje: mai puțin MISS la origine, netezirea „furtunilor”, ieșirea mai ieftină.
Grupați plăcile pe geo cu cea mai mare densitate de trafic (EU, TR, BR, LATAM).
6) Dizabilitatea și încălzirea
Purge by path/prefix/tag: etichetele sunt convenabile pentru curățarea lotului (eliberarea catalogului, campanie promoțională).
Purjare moale (grație): marcați conținutul învechit, dar dați-l înainte de sosirea celui nou.
Warm up (prewarm): scenarii în timpul lansării/înainte de turneu: votarea căilor populare, generarea de sprite și variații de imagini.
Handicap canar: parțial curat, validați valorile/erorile, apoi extindeți.
7) Reguli și funcții de margine (lucrători/funcții)
Suprascrierea răspunsurilor: adăugarea anteturilor de cache, normalizarea 'Vary', decuparea cookie-urilor.
Rutare Geo/ASN: redirecționări, locale/valută după țară.
URL-uri semnate/anteturi pentru medii/obiecte protejate.
Teste Edge-AB: lumină, nici o creștere a sarcinii la origine (numai pentru static/semi-static).
Edge-computer: randarea widget-ului/personalizării luminii, dar nu calea de plată la cald.
8) Imagini și videoclipuri
8. 1 Imagini
Autoconversie: WebP/AVIF atunci când clientul 'Accept'; „Vary: Accept”.
Redimensionarea pe margine: parametrii „w/h/fit/quality”; pregătiți presetări (card, banner, previzualizare).
Sprite și optimizarea SVG, încărcare leneș în față.
8. 2 Video/Stream
HLS/DASH cu segmente scurte (2-4 sec), suprapunând listele de redare.
Preîncărcați cele mai apropiate segmente și „stale-if-error”.
Pentru pariuri live - păstrați segmente în scut regional pentru TTFB tăiat.
9) API prin CDN
Cacheable GET: Adăugați 'Cache-Control' și cheia corectă (locale/valută/regiune).
condiționat GET: „ETag ”/„ If-None-Match” reduce octeți și TTFB.
POST/PUT: nu cache; este posibil să se cache răspunsurile POST numai în conformitate cu norme explicite și semantici idempotente (rareori justificate).
Rata de limitare/WAF la margine: Reduce cozile prin tăierea roboților/anomaliilor.
10) Securitate, acces și conformitate
Managementul WAF/bot: semnături, euristică comportamentală, protecție împotriva scanerelor bonus.
URL-uri semnate/anteturi pentru descărcări media și private.
mTLS к origine и IP allow-list.
GDPR/PII/PCI: nu cache date sensibile; API cu răspunsuri personale - 'no-store'.
Geo-filtre/interblocări la margine în conformitate cu cerințele de reglementare a pieței.
11) Rețea și protocoale
Activați HTTP/2/3 pe CDN, reluarea TLS și capsarea OCSP.
Brotli (br) pentru formate de text, gzip - rezervă.
Tuningul TCP/QUIC (la furnizor) → un impact mai mic al pierderilor, în special asupra rețelei mobile.
12) Observabilitate și SLO pentru CDN
Valori (margine și scut):- Hit Ratio (global și prin prefix), Origine Offload.
- TTFB P50/P95/P99 pe regiuni/ASN.
- Transfer/Erori după codurile de stare (margine/origine).
- Curăţă latenţa.
- Transformarea latenţei imaginii (dacă utilizaţi Edge Resizing).
- Catalog de jocuri: TTFB P95 ≤ 150 ms, Offload ≥ 85%.
- Media (imagini): Hit Ratio ≥ 90%, erori de transformare <0. 1%.
- API GET „directoare”: TTFB P95 ≤ 200 ms, Revalization Hit ≥ 60%.
13) FinOps: valoare cache
Offload = mai puțin decât ieșirea cu originea → beneficiile directe $.
Nivelat + scut tăiat „furtuni” și sarcină MISS.
Optimizarea imaginilor (AVIF/WebP/redimensionare) oferă cele mai mari economii de trafic.
Controlul greutăților P95 răspuns și „MISS-uri scumpe” (octeți × număr × regiune).
14) Configurații și reguli (fragmente)
14. 1 Titluri de origine (Nginx)
nginx статика с версионированием location ~ \.(css js woff2)$ {
add_header Cache-Control "public, max-age=31536000, immutable";
}
полустатика каталога location /catalog/ {
add_header Cache-Control "public, max-age=300, stale-while-revalidate=600, stale-if-error=600";
add_header Vary "Accept, Accept-Language";
}
14. 2 Normalizarea cheii pe margine (pseudo)
js addRule((req) => {
// очищаем шум req.cookies.clearExcept(['ab', 'locale']);
// ключ = method+path+критичные query key = `${req.method}:${req.path}?lang=${q.lang}¤cy=${q.cur}`;
req.setCacheKey(key);
req.setVary(['Accept', 'Accept-Encoding', 'Accept-Language']);
});
14. 3 URL-ul semnat (idee)
/media/{path}?exp=1735707600&sig=HMAC_SHA256(secret, path exp ip)
На edge: проверка exp и подписи, опционально привязка к IP/ASN.
15) Procese de eliberare și funcționare
Cârlige de lansare: purjare automată prin etichete/prefixe după implementare.
Prewarm-list: trasee de top în trafic/conversie - încălziți-vă în avans.
Catalog TTL-matrice: de acord cu produsul/marketing.
Incidente: odată cu creșterea MISS/TTFB - porniți transformările costisitoare pe margine până când originea se stabilizează.
16) Lista de verificare a implementării
1. Harta conținutului (static/semi-static/API) și matricea TTL.
2. Corectați 'Cache-Control', 'ETag/Last-Modified', 'Vary'.
3. Cheia cache fără „zgomot”, decuparea cookie-urilor, listele albe.
4. Caching pe niveluri + scut de origine pe regiuni.
5. Purjare de tag-uri/prefixe, purjare moale, proceduri prewarm.
6. Funcții de margine: normalizare, geo-logică, URL-uri semnate.
7. Optimizarea imaginilor (WebP/AVIF/redimensionare), segmente HLS pentru video.
8. Filtre WAF/bot, geo-constrângeri, mTLS la origine.
9. Plăci SLO: TTFB, Hit Ratio, Offload, erori de transformare.
10. Rapoarte FinOps: $/GB, dragă MISS, regiuni de conducere de ieșire.
17) Anti-modele
'no-cache' este peste tot „pentru orice eventualitate”.
Cheia cache include toate interogările/anteturile → zero Hit Ratio.
Răspunsuri dependente de cookie-uri pentru static (rupe întreaga memorie cache).
Eliberați întregul CDN pe fiecare versiune.
Transformări sincrone lungi pe margine în timpul vârfurilor.
Absența „stale-în timp ce-revalidate ”/„ vechi-dacă-eroare” - degradarea ascuțită a UX.
Caching de date cu caracter personal/răspunsuri fără „no-store”.
18) context iGaming/fintech: note practice
Turnee/evenimente: scurt TTL pe clasamente (2-10 sec) + SWR; cărți de joc prewarm și bannere.
Geo-licențiere: edge-locks/redirecționează după țară, monedă/locală în cheie cache.
Promo și cupoane: cache bannere/condiții, dar nu limite personale.
Responsible games: policy/limits pages - semi-static cu SWR; date cu caracter personal - numai „no-store”.
Webhookuri PSP/KYC: nu prin CDN, sau edge-pass-through fără memorie cache și cu termene dure.
Rezultat
O strategie CDN puternică este anteturile corecte și cheia cache, nivelată/scut pentru reducerea MISS, caracteristicile de margine pentru normalizare și protecție, dizabilitatea/încălzirea pentru eliberări rapide și observabilitatea cu SLO și FinOps. Respectând aceste principii, veți avea un perimetru rapid și economic care va rezista vârfurilor și va face TTFB previzibil pentru utilizatori și parteneri.