GH GambleHub

Technologie i infrastruktura → CDN i buforowanie treści

CDN i buforowanie treści

1) Dlaczego CDN i pamięć podręczna

CDN (Content Delivery Network) zmniejsza RTT i TTFB, odciąża pochodzenie i stabilizuje P95/P99 ogony. W przypadku iGaming/fintech są to:
  • Szybki pierwszy bajt do katalogu, aktywa, promo, media.
  • Maksymalna stabilność (turnieje/wydarzenia) bez wybuchowego wzrostu zdolności pochodzenia.
  • Oszczędności i przewidywalne koszty.
  • Kontrola geograficzna (regulacja, licencjonowanie treści).

2) Podstawowe strategie buforowania

2. 1 Odpowiedzi, które mogą być buforowane

Statyczny: JS/CSS/fonts/ikony - długi TTL (30-365 dni) + plik-hash w nazwie.
Półstacjonarne: katalogi gier, banery, konfiguracje - TTL od minut do godzin + 'stale-while-revalidate'.
API GET/HEAD: katalogi, ceny, lidery - krótki TTL (5-120 sekund) z odpowiednim kluczem.

2. 2 Tytuły

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

'ETag '/' Last-Modified' dla przedłużenia ważności.
„Sterowanie zastępcze ”/„ CDN-Cache-Control” (jeśli usługodawca obsługuje).
Dla danych prywatnych: „Cache-Control: no-store” (nie tylko „no-cache”).

2. 3 Klucz pamięci podręcznej

Podstawa: metoda + ścieżka URL + parametry zapytania, które wpływają na odpowiedź.
Dodatki: 'Accept-Encoding' (gzip/br), 'Accept' (json/webp/avif), locale ('Accept-Language'), region/waluta, jeśli zawartość jest dotknięta.
Unikaj przypadkowych nagłówków (ciasteczek, identyfikatorów) w kluczu.


3) Różne zarządzanie i pliki cookie

'Vary: Accept-Encoding, Accept, Accept-Language' to minimalny wymagany zestaw.
Usuwanie ciasteczek CDN dla ścieżek buforowanych: usuń wszystko z wyjątkiem białych (np. flag AB).
Przenoszenie identyfikatorów sesji do subdomen/ścieżek poza zawartość buforowaną.


4) TTL i wzory świeżości

Statyczny immutable: 'Cache-Control: public, max-age = 31536000, immutable' + wersje w nazwie pliku.
SWRO/SIE: „stale-while-revalidate” i „stale-if-error” - UX-resistance-in-origin problems.
Podzielony TTL: główna lista gier - 30-60 sekund; karta gry - 5-10 minut; banery - 30 min.
API mix: podstawowe książki referencyjne - 5-30 min; waluty/limity - 1-5 min; lider - 2-15 sekund.


5) Tarcza Tiercaching-origin

Wielopoziomowe/regionalne bufory: Wnioski, które przechodzą przez krawędź, są zwalczane w regionalnej „tarczy” zamiast pochodzenia.
Zalety: mniej MISS na pochodzenie, wygładzanie „burze”, tańsze wyjście.
Zgrupować płyty według geo o najwyższej gęstości ruchu (UE, TR, BR, LATAM).


6) Niepełnosprawność i ocieplenie

Oczyścić ścieżką/prefiks/tag: tagi są wygodne do czyszczenia partii (wydanie katalogu, kampania promocyjna).
Miękka czystka (grace): zaznacz zawartość przestarzałą, ale oddaj ją przed przyjazdem nowego.
Rozgrzewka (prewarm): scenariusze podczas wydania/przed turniejem: sondaż popularnych ścieżek, generowanie sprites i wariacje obrazów.
Niepełnosprawność kanaryjska: częściowo czyste, walidacji mierników/błędów, a następnie rozszerzyć.


7) Zasady i funkcje krawędzi (Pracownicy/Funkcje)

Nadpisywanie odpowiedzi: dodawanie głowic pamięci podręcznej, normalizacja 'Vary', usuwanie ciasteczek.
Routing Geo/ASN: przekierowania, lokalizacja/waluta według kraju.
Podpisane adresy URL/Nagłówki chronionych nośników/obiektów.
Badania krawędzi AB: światło, brak zwiększenia obciążenia pochodzenia (tylko dla statycznych/półstatycznych).
Krawędź-obliczenie: jasny widget/render personalizacji, ale nie gorąca ścieżka płatności.


8) Obrazy i filmy

8. 1 Zdjęcia

Autokonwersja: WebP/AVIF podczas 'Akceptuj' klienta; „Różnica: Akceptuj”.
Wymiar na krawędzi: parametry „w/h/fit/quality”; przygotować ustawienia wstępne (karta, baner, podgląd).
Sprites i SVG optymalizacja, leniwe załadunek z przodu.

8. 2 Wideo/strumień

HLS/DASH z krótkimi segmentami (2-4 sekundy), pokrywającymi się listami odtwarzania.
Wstępne obciążenie najbliższych segmentów i „ciągły błąd”.
Dla zakładów na żywo - utrzymać segmenty w regionalnej tarczy do cięcia TTFB.


9) API za pośrednictwem CDN

Cacheable GET: Dodaj 'Cache-Control' i odpowiedni klucz (lokalny/waluta/region).
Warunkowy GET: 'ETag '/' If-None-Match' zmniejsza bajty i TTFB.
POST/PUT: nie buforowany; możliwe jest podłączenie odpowiedzi POST tylko w oparciu o wyraźne zasady i idempotentne semantyki (rzadko uzasadnione).
Ograniczenie tempa/WAF na krawędzi: Zmniejsza ogony poprzez odcięcie botów/anomalii.


10) Bezpieczeństwo, dostęp i zgodność

Zarządzanie WAF/bot: podpisy, heurystyka behawioralna, ochrona przed skanerami bonusowymi.
Podpisane adresy URL/Nagłówki dla mediów i prywatnych plików do pobrania.
mTLS - pochodzenie przez IP - wykaz zezwoleń.
RODO/PII/PCI: nie przechowywać danych wrażliwych; API z osobistymi odpowiedziami - „bez sklepu”.
Geosiltry/blokady na krawędzi zgodnie z wymogami rynkowymi.


11) Sieć i protokoły

Włącz HTTP/2/3 na CDN, wznowienie TLS i zszywanie OCSP.
Brotli (br) dla formatów tekstowych, gzip - fallback.
TCP/QUIC tuning (u dostawcy) → mniejszy wpływ strat, zwłaszcza w sieci komórkowej.


12) Obserwowalność i SLO dla CDN

Mierniki (krawędź i osłona):
  • Hit Ratio (ogólnie i przez prefiks), Origin Offload.
  • TTFB P50/P95/P99 według regionu/ASN.
  • Przepustowość/błędy według kodów statusu (krawędź/pochodzenie).
  • Opóźnienie w oczyszczeniu.
  • Obraz przekształca opóźnienie (jeśli używasz rozmiaru krawędzi).
Przykłady SLO:
  • Katalog gier: TTFB P95 ≤ 150 ms, Offload ≥ 85%.
  • Media (obrazy): Współczynnik trafienia ≥ 90%, błędy transformacji <0. 1%.
  • API GET „katalogi”: TTFB P95 ≤ 200 ms, Revalization Hit ≥ 60%.

13) FinOps: wartość pamięci podręcznej

Offload = mniej niż wyjście z pochodzenia → bezpośrednie $ korzyści.
Wielopoziomowy + tarcza wyciąć „burze” i obciążenie MISS.
Optymalizacja obrazu (AVIF/WebP/resize) zapewnia największe oszczędności ruchu.
Wagi kontroli P95 odpowiedzi i „drogie MISS” (bajty × liczba × region).


14) Konfiguracje i zasady (fragmenty)

14. 1 Tytuły pochodzenia (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 Normalizacja klucza na krawędzi (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 Podpisany adres URL (pomysł)


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

15) Procesy uwalniania i eksploatacji

Haki zwolnienia: automatyczne oczyszczanie przez tagi/prefiksy po wdrożeniu.
Lista wstępna: górne ścieżki w ruchu/konwersji - rozgrzewka z góry.
Katalog matrycy TTL: uzgodniony z produktem/marketingiem.
Incydenty: wraz ze wzrostem MISS/TTFB - włączyć ciągły błąd, „strzelać” drogie transformacje na krawędzi, aż pochodzenie stabilizuje.


16) Lista kontrolna wdrażania

1. Mapa treści (statyczna/półstacjonarna/API) i matryca TTL.
2. Poprawne 'Cache-Control', 'ETag/Last-Modified', 'Vary'.
3. Klucz pamięci podręcznej bez „hałasu”, striptiz ciasteczek, whitelistów.
4. Buforowanie wielopoziomowe + tarcza pochodzenia według regionu.
5. Oczyścić za pomocą tagów/prefiksów, miękkiej czystki, przedwczesnych procedur.
6. Funkcje krawędzi: normalizacja, geo-logika, podpisane adresy URL.
7. Optymalizacja obrazu (WebP/AVIF/rozmiar), segmenty HLS dla wideo.
8. Filtry WAF/bot, ograniczenia geograficzne, mTLS do pochodzenia.
9. Płyty SLO: TTFB, Hit Ratio, Offload, błędy transformacji.
10. FinOps raporty: $/GB, drogi MISS, egress wiodących regionów.


17) Anty-wzory

'no-cache' jest wszędzie 'na wszelki wypadek'.
Klucz pamięci podręcznej zawiera wszystkie zapytania/nagłówki → zerowy współczynnik trafienia.
Odpowiedzi zależne od plików cookie dla statycznych (łamie cały pamięć podręczną).
Oczyścić cały CDN na każdym wydaniu.
Długie przemiany synchroniczne na krawędzi podczas szczytów.
Brak „stale-while-revalidate ”/„ stale-if-error” - ostra degradacja UX.
Buforowanie danych osobowych/odpowiedzi bez „no-store”.


18) Kontekst iGaming/fintech: uwagi praktyczne

Turnieje/wydarzenia: krótki TTL na tablicach (2-10 sekund) + SWR; przedpremierowe karty do gry i banery.
Geo-licencjonowanie: blokady krawędzi/przekierowania według kraju, waluta/lokalizacja w kluczu pamięci podręcznej.
Promo i kupony: buforujemy banery/warunki, ale nie osobiste ograniczenia.
Odpowiedzialne gry: strony polityki/limitów - półstacjonarne z SWR; dane osobowe - tylko „brak sklepu”.
Haki internetowe PSP/KYC: nie za pośrednictwem CDN, ani krawędzi-pass-through bez pamięci podręcznej i z trudnymi czasami.


Wynik

Silna strategia CDN to prawidłowe nagłówki i klucz pamięci podręcznej, wielopoziomowa/tarcza do redukcji MISS, funkcje krawędzi do normalizacji i ochrony, niepełnosprawność/ocieplenie dla szybkich wydań i obserwowalność z SLO i FinOp. Przestrzegając tych zasad, będziesz miał szybki i ekonomiczny obwód, który wytrzyma szczyty i sprawi, że TTFB będzie przewidywalne dla użytkowników i partnerów.

Contact

Skontaktuj się z nami

Napisz do nas w każdej sprawie — pytania, wsparcie, konsultacje.Zawsze jesteśmy gotowi pomóc!

Rozpocznij integrację

Email jest wymagany. Telegram lub WhatsApp są opcjonalne.

Twoje imię opcjonalne
Email opcjonalne
Temat opcjonalne
Wiadomość opcjonalne
Telegram opcjonalne
@
Jeśli podasz Telegram — odpowiemy także tam, oprócz emaila.
WhatsApp opcjonalne
Format: kod kraju i numer (np. +48XXXXXXXXX).

Klikając przycisk, wyrażasz zgodę na przetwarzanie swoich danych.