GH GambleHub

Technologie et infrastructure → réseaux CDN et cache de contenu

Réseau CDN et cache de contenu

1) Pourquoi CDN et cache

Le CDN (Content Delivery Network) réduit le RTT et le TTFB, décharge l'origin et stabilise les queues du P95/P99. Pour iGaming/fintech, c'est :
  • Premier octet rapide pour catalogue, assets, promos, médias.
  • Stabilité de pointe (tournois/événements) sans croissance explosive de la capacité origin.
  • Économies egress et coût prévisible.
  • Géo-contrôle (réglementation, licences de contenu).

2) Stratégies de base de cache

2. 1 Réponses qui peuvent être cachées

Statique : JS/CSS/polices/icônes - TTL (30-365 jours) + fichier-hash dans le nom.
Demi-statique : catalogues de jeux, bannières, configi - TTL de minutes à heures++ « stale-while-revalidate ».
API GET/HEAD : guides, prix, leaders - TTL courts (5-120 secondes) avec la bonne clé.

2. 2 Titres

`Cache-Control: public, max-age=600, stale-while-revalidate=300, stale-if-error=600`

'ETag '/' Last-Modified 'pour les requêtes conditionnelles (revalidation).
'Surrogate-Control '/' CDN-Cache-Control '(si le fournisseur le prend en charge).
Pour les données privées : 'Cache-Control : no-store' (pas simplement 'no-cache').

2. 3 Clé de cache (cache key)

Base : méthode + URL + paramètres query qui affectent la réponse.
Additifs : 'Accept-Encoding' (gzip/br), 'Accept' (json/webp/avif), local ('Accept-Language'), région/monnaie si elle affecte le contenu.
Évitez de tomber dans la clé des titres aléatoires (cookies, trace ids).


3) Gestion de Vary et cookies

« Vary : Accept-Encoding, Accept, Accept-Language » est l'ensemble minimum nécessaire.
Cookie de décapage sur le CDN pour les chemins hachés : nous supprimons tout sauf whitelisted (par exemple les drapeaux AB).
Migrer les identifiants de session vers des sous-domaines/chemins en dehors du contenu à cache.


4) Modèles de TTL et de fraîcheur

Statique immutable : 'Cache-Control : public, max-age = 31536000, version immutable' + dans le nom de fichier.
SWRO/SIE : 'stale-while-revalidate' et 'stale-if-error' - résistance UX aux problèmes d'origin.
Partitioned TTL : la liste racine des jeux est de 30 à 60 secondes ; carte de jeu - 5-10 min ; bannières - 30 min.
Mélange API : guides de base - 5-30 min ; devises/limites - 1-5 min ; le leader est ― 2-15 secondes.


5) Tiered caching и origin shield

Tiered/Regional caches : les demandes passées par edge battent le « shield » régional au lieu de l'origin.
Avantages : Moins de MISS par origin, lisser les « tempêtes », moins cher egress.
Regrouper les boucliers par géo avec la plus grande densité de trafic (EU, TR, BR, LATAM).


6) Handicap et échauffement

Purge par path/prefix/tag : les étiquettes sont faciles à nettoyer par lots (sortie du catalogue, campagne promotionnelle).
Soft purge (grace) : marquer le contenu obsolète, mais donner avant l'arrivée d'un nouveau.
Échauffement (prewarm) : scénarios à la sortie/avant le tournoi : enquête sur les chemins populaires, génération de sprites et variations d'images.
Handicap canarien : nettoyer partiellement, valider les métriques/erreurs, puis étendre.


7) Edge règles et fonctions (Workers/Functions)

Réécriture des réponses : ajout d'en-têtes de cache, normalisation de 'Vary', striping cookies.
Route Geo/ASN : redirect, local/monnaie par pays.
Signature d'URL (Signed URLs/Headers) pour les médias/objets sécurisés.
Tests Edge-AB : légers, sans augmentation de la charge d'origin (statique/semi-statique uniquement).
Edge-compute : un rendu de widgets légers/personnalisation, mais pas un chemin de paiement chaud.


8) Images et vidéos

8. 1 Images

Conversion automatique : WebP/AVIF dans 'Accept'du client ;' Vary : Accept'.
Resising on edge : paramètres 'w/h/fit/quality' ; préparer les presets (carte, bannière, prévisualisation).
Sprites et optimisation SVG, lazy-loading sur le front.

8. 2 Vidéo/stream

HLS/DASH avec des segments courts (2-4 secondes), des listes de lecture qui se chevauchent.
Preload des segments les plus proches et 'stale-if-error'.
Pour les paris en direct - gardez les segments dans le bouclier régional pour réduire le TTFB.


9) API via CDN

GET : ajoutez « Cache-Control » et une clé correcte (local/monnaie/région).
Conditional GET : 'ETag '/' If-None-Match' réduit les octets et TTFB.
POST/PUT : ne sont pas attachés ; les réponses POST ne peuvent être posées qu'avec des règles explicites et une sémantique idempotente (rarement justifiée).
Rate limiting/WAF sur le bord : réduit les queues en coupant les bots/anomalies.


10) Sécurité, accès et conformité

WAF/bot management : signatures, heuristiques comportementales, protection contre les scanners bonus.
Signed URLs/Headers pour les médias et les téléchargements privés.
mTLS к origin и IP allow-list.
GDPR/PII/PCI : ne pas mettre en cache des données sensibles ; L'API avec les réponses personnelles est « no-store ».
Filtres/verrous géo sur le bord selon les exigences des régulateurs du marché.


11) Réseau et protocoles

Activez les HTTP/2/3 sur CDN, TLS resumption et OCSP stapling.
Brotli (br) pour les formats de texte, gzip - fallback.
TCP/QUIC tuning (le fournisseur) → moins d'impact de perte, en particulier sur le réseau mobile.


12) Observabilité et SLO pour CDN

Métriques (par edge et shield) :
  • Hit Ratio (overall et par préfixe), Original Offload.
  • TTFB P50/P95/P99 par région/ASN.
  • Throughput/Errors par code de statut (edge/origin).
  • Purge latency (délai de livraison de l'invalidité).
  • Image bou latency (si vous utilisez le resising sur le bord).
Exemples de SLO :
  • Catalogue des jeux : TTFB P95 ≤ 150 ms, Offload ≥ 85 %.
  • Médias (images) : Hit Ratio ≥ 90 %, erreurs de transformation <0. 1%.
  • API GET « guides » : TTFB P95 ≤ 200 ms, Revalidation Hit ≥ 60 %.

13) FinOps : le coût de la cache

Offload = moins d'egress avec origin → $ -gods directs.
Tiered + shield coupe les « tempêtes » et la charge MISS.
L'optimisation des images (AVIF/WebP/resize) permet d'économiser le plus de trafic.
Contrôler la P95 du poids de la réponse et « chers MISS » (octets × kol-in- × region).


14) Configis et règles (fragments)

14. 1 Titres origin (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 Normaliser la clé sur edge (pseudo)

js addRule((req) => {
// очищаем шум req.cookies.clearExcept(['ab', 'locale']);
// ключ = method+path+критичные query key = `${req.method}:${req.path}?lang=${q.lang}&currency=${q.cur}`;
req.setCacheKey(key);
req.setVary(['Accept', 'Accept-Encoding', 'Accept-Language']);
});

14. 3 URL signées (idée)


/media/{path}?exp=1735707600&sig=HMAC_SHA256(secret, path    exp    ip)
На edge: проверка exp и подписи, опционально привязка к IP/ASN.

15) Processus de libération et d'exploitation

Release hooks : purge automatique par tags/préfixes après le dégagement.
Liste de préparation : Top chemins sur le trafic/conversion - chauffer à l'avance.
Catalogue de la matrice TTL : aligné avec le produit/marketing.
Incidents : avec la croissance de MISS/TTFB - nous incluons stale-if-error, « filmons » les transformations coûteuses sur le bord avant de stabiliser l'origin.


16) Chèque de mise en œuvre

1. Carte de contenu (statique/semi-statique/API) et matrice TTL.
2. Correct 'Cache-Control', 'ETag/Last-Modified', 'Vary'.
3. Clé de cache sans « bruit », cookie de strip-tease, whitelists.
4. Tiered caching + origin shield par région.
5. Purge par tags/préfixes, soft purge, procédure prewarm.
6. Fonctions Edge : normalisation, geo-logique, URL signées.
7. Optimisation des images (WebP/AVIF/resize), segments HLS pour la vidéo.
8. WAF/filtres de bot, géo-contraintes, mTLS à origin.
9. SLO-dashboards : TTFB, Hit Ratio, Offload, erreurs de transformation.
10. Rapports FinOps : $/GB, chers MISS, régions leaders sur egress.


17) Anti-modèles

« no-cache » est partout « juste au cas où ».
La clé de cache inclut tous les en-têtes/query → zéro Hit Ratio.
Réponses dépendantes des cookies pour la statique (casse le cache entier).
Nettoyage du CDN total à chaque sortie.
Longues transformations synchrones sur le bord pendant les pics.
L'absence de 'stale-while-revalidate '/' stale-if-error' est une dégradation brusque de l'UX.
Cache les données personnelles/réponses sans « no-store ».


18) Contexte iGaming/fintech : notes pratiques

Tournois/participants : court TTL sur les leaders (2-10 secondes) + SWR ; prewarm cartes de jeux et bannières.
Géo-licence : edge-lock/redirect par pays, monnaie/local dans la clé de cache.
Promos et coupons : nous mettons en cache les bannières/conditions, mais pas les limites personnelles.
Jeux responsables : politiques/pages limites - semi-statiques avec SWR ; les données à caractère personnel ne sont que « no-store ».
PSP/KYC webhooks : pas via CDN, ou edge-pass-through sans cache et avec des temps durs.


Total

Une stratégie CDN forte est le bon en-tête et clé de cache, tiered/shield pour réduire le MISS, les fonctions edge pour la normalisation et la protection, le handicap/échauffement pour les sorties rapides et l'observabilité avec SLO et FinOps. En respectant ces principes, vous obtiendrez un périmètre rapide et économique qui résistera aux pics et rendra TTFB prévisible pour les utilisateurs et les partenaires.

Contact

Prendre contact

Contactez-nous pour toute question ou demande d’assistance.Nous sommes toujours prêts à vous aider !

Commencer l’intégration

L’Email est obligatoire. Telegram ou WhatsApp — optionnels.

Votre nom optionnel
Email optionnel
Objet optionnel
Message optionnel
Telegram optionnel
@
Si vous indiquez Telegram — nous vous répondrons aussi là-bas.
WhatsApp optionnel
Format : +code pays et numéro (ex. +33XXXXXXXXX).

En cliquant sur ce bouton, vous acceptez le traitement de vos données.