GH GambleHub

CDN және latency reduction оңтайландыру

1) Кідірістердің мақсаттары мен картасы

Latency = DNS + TCP/TLS + TTFB (сервер/ориджин/кэш) + контентті жеткізу (RTT × көлемдер) + клиент рендері.
Оңтайландыру = RTT санын қысқартамыз, байттарды азайтамыз және есептеулерді/кэштерді пайдаланушыға жақындатамыз.

2) CDN архитектурасы

Anycast POPs - BGP-маршруттау бойынша жақын торап.
Tiered caching/Origin Shield - ориджиндеги miss-дауылды төмендететін «қолшатыр» аралық қабат.
Geo-/Regional routing - тенантты/юрисдикцияны (деректердің егемендігі, лицензия) байланыстыру.
Failover - резервтік ориджин/өңір, денсаулық сынамалары және жылдам қосқыш.

3) Кэш: кілттер, тақырыптар, стратегиялар

3. 1 Кэш кілттері (cache key)

Әдепкі 'scheme + host + path +? query'.
Тек қажетті параметрлерді қосыңыз ('? v =', '? lang =', '? tenant ='). Қалғандары - ignore-params.
'Vary' - ең кіші: 'Accept-Encoding', 'Accept-Language' (егер шындық қажет болса), 'Authorization' әдетте кэшті бұзады.

3. 2 Саясат

Public статикасы: 'Cache-Control: public, max-age = 31536000, immutable' + rev (атауындағы hash).
Жартылай динамика (каталогтар, ережелер, FAQ): 's-maxage = 300, stale-while-revalidate = 600, stale-if-error = 86400'.
API-GET: ETag/Last-Modified, 'SWR/SIE' пайдаланыңыз, coalescing (ыстық кілтке бір сұрау) қосыңыз.
Private: дербес жауаптар - edge-compute (ESI/kv) немесе пер-тенант кэш арқылы периметрде.

3. 3 Анти-дауыл

Request coalescing - бір мезгілдегі miss сұрауларын қағып тастау.
Serve-stale - ориджин істен шыққан кезде ескірген нысанды беру.
Background revalidation - фонында жаңарту.

4) HTTP/2-3, TCP/TLS және ерте қайтару

HTTP/2: мультиплекс, тақырыптарды қысу; 'max concurrent streams', ірі тақырыптарды шектеңіз.
HTTP/3 (QUIC): TTFB ұтқыр/жоғары ысырапқа ірі төмендеуі; Initial-табалдырықтарды және Retry-ді қадағалаңыз.
TLS 1. 3: 1-RTT handshake; OCSP stapling; HSTS.
0-RTT: тек «GET» үшін және егер replay тәуекелдері ескерілсе.
103 Early Hints: ерте 'Link: rel = preload' критикалық ресурстар үшін.
Preconnect / DNS-prefetch: `<link rel="preconnect" href="https://cdn. example">`.

5) Edge-compute және «жұқа дербестендіру»

Шетінде: атаулар санағы, гео/тенант-бекіту, A/B-таңбалау, ориджинге сұраныссыз жеңіл дербестендіру.
Ереже: PII-ді POP тораптарында сақтауға болмайды; Тек агрегаттарды/көпшілік деректерді кэштеу.

6) Медиа және форматтарды оңтайландыру

Суреттер: WebP/AVIF, resize-on-edge, 'srcset/sizes', 'lazyload' автоматты түрде түрлендіру.
Компрессия: мәтіндерге арналған Brotli (HTML/CSS/JS/JSON), gzip fallback.
Бейне: HLS/DASH, CDN-segment caching, 'preload = metadata', постер.
Қаріптер: subset + 'font-display: swap'; ұзақ кэшпен хосттау.
Сыни CSS: бірінші экран; қалғаны - async.

7) API-паттерндер және кэштеу

Idempotent GET - сұрау кілттері бойынша кэштейміз (деректер нұсқасын қоса алғанда).
ETag: күшті пайдалы жүктеме хеш + 'If-None-Match'.
'Cache-Control' клиентінен айырмашылығы үшін Surrogate-Control (CDN-ерекшелігі).
Signed URLs - жеке статика/медиа үшін.
GraphQL: операция/айнымалы кэш кілтін қалыпқа келтіріңіз; partial caching/резолвер кэшін пайдаланыңыз.
WebSockets: real-time үшін - хабарларды қысқартыңыз, қысыңыз (permessage-deflate), WS-шарларды пайдаланушыға жақын орналастырыңыз.

8) Конфигурация мысалдары

8. 1 NGINX (ориджин: кэшеміз 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, 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) Мобильді желілер және «тұрақсыз» интернет

HTTP/3 агрессивті пайдаланыңыз; критикалық жолдың өлшемін азайтыңыз (HTML + critical CSS <14 KB).
Priority H2/H3: басымдықтарды белгілеңіз (HTML → CSS → JS → медиа кейінірек).
Джиттермен ретрай-саясат, API үшін idempotency.
Size-budgets және бандлинг: код-сплиттинг, deferred JS, пайдаланылмаған CSS/JS жою.

10) Бақылау және SLO

RUM: TTFB, LCP, INP, CLS өңірлер бойынша/ASN/тенанттар; p95/p99.
Синтетика: POP-ам бойынша «/health/cdn »бақылау бағыты.
Кэш-метриктер: hit-ratio overall және per-key; origin fetch rate; coalescing savings.
Алерталар: hit-ratio құлдырауы, origin-egress өсуі, H3-үлестердің азаюы, 5xx shield.

11) iGaming/Қаржы ерекшелігі

Ойын каталогтары/коэффициенттері: қысқа 's-maxage' + SWR; region-aware ключ (`tenant|region|lang`).
Оқиғалық шыңдар (матчтар, ұтыс ойындары): кэшті қыздыру (pre-warm), ауыр дербестендіруді «қатыру», mirror-көздер.
Төлем/кабинет: жекеменшікті кэшемеу, бірақ H3 + edge-TLS және жақын аймақ арқылы жылдамдату.
Юрисдикциялар: бөлінген домендер/per-аймақ жолдары; 'Vary: X-Region'.

12) Антипаттерндер

'Vary:' барлық қатарға; кэш кілті артық cookie/тақырыптарға байланысты.
Қысқа ориджин істен шыққан кезде SWR/SIE → «қара экрандар» болмауы.
Тегтер/кілттер бойынша нүктелік мүгедектіктің орнына кэшті «бүкіл бойынша» тазалау.
Аттарды тексерусіз ресурстар және с 'max-age = 0'.
Public берілетін жердің өзінде 'Authorization' үшін жаһандық deny-cache.
Ориджинде coalescing → дауылдың болмауы.
POP-та мерзімінен бұрын «ауыр» дербестендіру.

13) Prod-дайындық чек-парағы

  • Anycast POP + tiered/shield; health-тексеру және origin failover.
  • Кэш кілттері аз; 'Surrogate-Control'.
  • SWR/SIE қосылған, coalescing белсенді; serve-stale қателер кезінде.
  • HTTP/3 қосылған; TLS 1. 3; 103 Early Hints сындарлы ресурстар үшін теңшелген.
  • Суреттер: AVIF/WebP, resize-on-edge; Мәтіндер үшін Brotli.
  • API-GET с ETag/Last-Modified; іспеттілік/ретра; жеке профайлдарды кэштемеңіз.
  • Статика домендеріне Preconnect; сыни CSS онлайн.
  • Өлшемдер: hit-ratio, origin-egress, TTFB/LCP p95, H3-үлес, өңірлер/тенанттар бойынша.
  • Оқиғалар алдында кэшті жылыту жоспары; нүктелік мүгедектік (тегтер).
  • Vary/keys/TTL құжаттамасы; инциденттердің ойнатқышы (hit-ratio құлауы).

14) TL; DR

Ориджинге баруды барынша азайтыңыз: tiered/shield + дұрыс cache-keys + SWR/SIE + coalescing. 1 HTTP/3/TLS қосыңыз. 3, 103 Early Hints және preconnect пайдаланыңыз. Жиегіндегі медианы қысыңыз және түрлендіріңіз, сыни CSS желісін жойыңыз. API үшін - ETag, ұқыпты 'Vary', іспеттілік және ақылға қонымды кэш 'GET'. hit-ratio, TTFB/LCP p95, origin egress өлшеңіз және кэшті шыңдарда алдын ала жылытыңыз.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.