GH GambleHub

CDN և latency reduction

1) Նպատակներն ու հետաձգման քարտեզը

Latency = MS + TCP/TMS + TTFB (սերվերը/origin/cash) + բովանդակության (RTT) + հաճախորդի ռենդեր։

Օպտիմիզացիան = կրճատում ենք RTT-ի քանակը, նվազեցնում ենք բայթերը և փոխանցում ենք հաշվարկները/քեշը ավելի մոտ օգտագործողին։

2) CDN ճարտարապետությունը

Anycase POPs-ը BGP ուղղության մոտակա հանգույց է։

Tiered caching/Origin Shield-ը «հովանոցային» միջանկյալ շերտն է, որը նվազեցնում է օրիգինի վրա miss փոթորիկը։

Geo-/Regional routing-ը Tenault/իրավասության կապն է (տվյալների ինքնիշխանությունը, լիցենզիան)։

Failover-ը պահեստային օրիգինն է/տարածաշրջանը, health-փորձարկումները և արագ անջատիչը։

3) Քաշ 'բանալիներ, վերնագրեր, ռազմավարություն

3. 1 Քեշի բանալին (cache key)

Լռելյայն '։

Ավելացրեք միայն անհրաժեշտ պարամետրերը («? v =», «? lang =», «? ten.ru =»)։ Մնացածը ignore-params-ում է։

«Vary» -ը նվազագույն է '«Accept-Encoding», «Accept-Language» (եթե իսկապես անհրաժեշտ է), «Authorization» -ը սովորաբար կոտրում է քեշը։

3. 2 Քաղաքականություն

Public կարգավիճակը ՝ "Cache-Corl: public, max-age = 31536000, immutable '+ rev (hash անունով)։

Պոլուդինամիկան (ստանդարտ, կանոնները, FAQ) ՝ «s-maxage = 300, stale-while-revalidate = 600, stale-if-error = 86400»։

API-GET 'օգտագործեք ETag/Lox-Modified, «SWR/SIE», միացրեք coalescing (մեկ խնդրանք տաք բանալին)։

Private: անձնական պատասխանները 'edge-comport (ESI/kv) կամ 71-տենանտ քեշի միջոցով։

3. 3 Անտի փոթորիկ

Request coalescing-ը միաժամանակ miss հարցումներ է։

Serve-stale-ը հնացած օբյեկտ տալիս է օրիգինի հավաքման ժամանակ։

Background revalidation-ը ֆոնի վրա նորարարելն է։

4) HTTP/2-3, TCP/TSA և վաղ արձակուրդ

HTTP/2 'մուլտիպլեքս, վերնագրերի սեղմում; սահմանափակեք «max concurrent streams», մեծ վերնագրեր։

HTTP/3 (QUIC), TTFB մեծ նվազումը բջջային/բարձր մակարդակներում։ հետևեք Initial-ին և Retry-ին։

TLS 1. 3: 1-RTT handshake; OCSP stapling; HSTS.

0-RTT 'միայն impotent' GET-ի համար, և եթե replay ռիսկերը հաշվի են առնվում։

Early Hints: վաղ «Link: rel = preload» կրիտիկական ռեսուրսների համար։

Preconnect / DNS-prefetch: ``.

5) Edge-compation-ը և «նուրբ կերպարը»

Եզրին 'վերնագրերի, գեո/ստենանտ-ամրագրման, A/B մակնշման, հեշտ կերպար, առանց օրիջինի դիմելու։

Կանոն 'չպահել PII-ը POP-հանգույցներում։ միայն միավորներ/հանրային տվյալներ։

6) Լրատվամիջոցների և ֆորմատների օպտիմիզացումը

Պատկերները 'ավտոմատ փոխարկումը CorP/AVIF, resize-on-edge, «www.cset/sizes», «lazyload»։

Սպիտակուցիա ՝ Brotli տեքստերի համար (HTML/CSS/JS/JSON), gzip fallback։

Տեսահոլովակը ՝ HMS/DASH, CDN-segronscaching, «preload = metadata», պաստառ։

Տառատեսակներ ՝ wwww.set + "font-play: swap '; հոգ տանել երկար քեշով։

Կրիտիկական CSS 'առաջին էկրանը։ մնացածը async է։

7) API-pattern և cashing

Idempotent GET-ը քեշիրուն է հարցման բեկորներով (ներառյալ տվյալների տարբերակը)։

ETag: ուժեղ hash ծանրաբեռնվածություն + «If-None-Match»։

Surrogate-Control (CDN հատկություններ) տարբերելու համար '"Cache-Corl' հաճախորդից։

Signed CORs-ը սովորական ստատիկայի/լրատվամիջոցների համար է։

GraphQL 'նորմալիզացրեք վիրահատության/փոփոխական բանալին։ օգտագործեք partial caching/resolver-cash։

Sockets-ը 'real-time-ի համար, կրճատեք հաղորդագրությունները, սեղմեք (permessage-windlate), տեղադրեք WS-shards ավելի մոտ օգտագործողին։

8) Միգրացիայի օրինակներ

8. 1 NGINX (origin: 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 24JS-ը ավելի ուշ լրատվամիջոցները)։

Ռետրայի քաղաքականությունը ջիթերի, idempotency-ի համար։

Size-budgets-ը և բանդլինգը 'splitting կոդը, www.erred JS-ը, չօգտագործված CSS/JS-ի հեռացումը։

10) Դիտարկումը և SLO-ն

RUM: TTFB, LCP, INP, CLS տարածաշրջաններում/ASN/tenantam; p95/p99 բաշխումը։

Սինթետիկա '«/health/cdn »վերահսկողական երթուղին POP-am-ով։

Քաշ-մետրիկները ՝ 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-TSA-ի և մոտիկ տարածաշրջանի միջոցով։

Իրավասություններ ՝ բաժանված ենթախմբեր/per-տարածաշրջանի ճանապարհներ; վերահսկողությունը 'Vary: X-Region'։

12) Անտիպատերնի

«Vary: » Ամեն ինչ անընդմեջ է։ քեշի բանալին կախված է ավելորդ կտորներից/վերնագրերից։

SWR/SIE-ի բացակայությունը բացատրում է «սև էկրանները» օրիգինի կարճ ձախողումների ժամանակ։

Քեշի մաքրումը «ամեն ինչի» փոխարեն թեգերի/բեկերի կետային հաշմանդամության փոխարեն։

Ռեսուրսները առանց ռուսական անունների և «max-age = 0» -ի։

Գլոբալ deny-cache-ի համար «Authorization» նույնիսկ այնտեղ, որտեղ տրվում է public-ը։

Coalescing-ի բացակայությունը բացատրում է օրիգինի փոթորիկը։

Հիբրիդային «ծանր» կերպարը POP-ի վրա։

13) Չեկ-թուղթ պատրաստակամության համար

  • Anycast POP + tiered/shield; health ստուգումներ և origin failover։
  • Քեշի բանալիները նվազագույն են. ավելացված query/cookies; «Surrogate-Corl»։
  • SWR/SIE-ն ներառում է, coalescing ակտիվ է; server-stale սխալներով։
  • HTTP/3 ներառվել է; TLS 1. 3; Early Hints-ը քննադատական ռեսուրսների համար է։
  • Պատկեր: AVIF/WindoP, resize-on-edge; Brotli-ը տեքստերի համար։
  • API-GET с ETag/Last-Modified; / retrai; չփորձել մասնավոր պրոֆիլներ։
  • Preconnics ստատիկայի կատալոգներին; կրիտիկական CSS ինլայնը։
  • Metriki: hit-ratio, origin-egress, TTFB/LCP p95, H3-մասը, տարածաշրջաններում/տենանտներում։
  • Իրադարձությունների առաջ քեշը տաքացնելու պլանը. կետային հաշմանդամություն (թեգեր)։
  • Windows Vary/keys/TTL; պլեյբուկ (hit-ratio անկում)։

14) TL; DR

Նվազեցրեք օրիգինի քայլերը 'tiered/shield + ճիշտ cache-keys + SWR/SIE + coalescing։ Միացրեք HTTP/3/TSA 1։ 3, օգտագործեք Early Hints և preconnations կոդերը։ Սեղմեք և վերափոխեք լրատվամիջոցները եզրին, ավելացրեք կրիտիկական CSS-ը։ API-ի համար 'ETag, կոկիկ «Vary», գաղափարախոսություն և խելացի քեշինգ «GET»։ Merit hit-ratio, TTFB/LCP p95, origin egress և նախօրոք տաքացրեք պիկի վրա։

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։