GH GambleHub

CDN և edge-keshing

CDN և edge-keshing

1) Նպատակներ

CDN (Content Corivery Network) նվազեցնում է լատենտը և բեռը origin-ի վրա.

2) Քաշման և բանալիների մոդել

Ключ кеша = `scheme + host + path +?(selected query params) + headers (Vary)`

Խորհուրդ է տրվում

Նորմալացնել query («utm _» բացառել, թողնել «v», «lang», «country» և այլն)։

Նվազագույնի հասցնել «Vary» (օրինակ ՝ «Vary: Accept-Encoding, Accept-Language»), խուսափել «Vary:»։

API-ի համար - wwww.d.com (semver, hash, build id) + անհրաժեշտ query/headers (օրինակ ՝ «X-Tenae»)։

Անհատականացված էջերի համար edge-հատվածն է (cookie/geo) կամ Skip-Cache-ը։

3) TTL քաղաքականությունները և վերնագրերը

Հիմնական վերնագրերը

`Cache-Control: public, max-age=300, s-maxage=3600, stale-while-revalidate=60, stale-if-error=300`

«Surrogate-Corl» (եթե աջակցվում է) - CDN-ի առանձին քաղաքականություն, որը տարբերվում է զննարկիչից։

«ETag »/« Last-Modified» - պայմանական հարցումներ (304) և խնայողություններ։

Մասնագետի համար '«Cache-Control: private, 71-store», եթե չեք կարող կանխել։

API-ն, որը թույլ է տալիս քեշը '"Cache-Corl: public, s-maxage = 60' + բանալին համաձայն։

Վերջնական մոտեցումը '"հավերժական" ռեսուրսներ (ֆայլի անունով fingerprint) www.max-age = 31536000, imutable "; «ԷՋ/JSON» -ը կարճ TTL + SWR է։

4) Հաշմանդամություն 'purge/soft-purge

Purge by URL: կետային։

Purge by no/key: Խմբակային մաքրումներ (օգտագործեք «Surrogate-Key: 108:42 category: food»)։

Soft-purge: նշում է «հնացած» բովանդակությունը, edge տալիս է stale մինչև նոր տարբերակը։

«Ջերմ» տաքացումն է, այն բանից հետո, երբ ապշեցուցիչ է տարածաշրջաններից հիմնական էջերը։

5) Edge-patters արտադրողականության

Stale-While-Revalidate: արագ պատասխանը «հնացած» պատճենով + ֆոնային նորարարություն է։

Profetch կրիտիկական ռեսուրսներ (preload, preconnect, 112-210 fetch)։

Compression: gzip/210 (տեքստային), zstd, եթե աջակցվի CDN-ին։

HTTP/2/3 (QUIC) 'բազմաբնույթ և ավելի քիչ լատենտ։

TMS session resumption և OCMS stapling պարագծի վրա։

6) Պատկերներ և տեսահոլովակներ

Image optimization at edge: resize/format negotiation (`Accept: image/avif,webp`), авто-WebP/AVIF, DPR-варианты.
Lazy-load и responsive (`srcset`, `sizes`).

Video: HMS/DASH, fragmented MP4, origin-shield (կենտրոնական քեշը) կրճատելու համար։

Thumbnail-ծառայությունները և signed CORs-ը մասնավոր պատկերների համար։

7) Պարագծի անվտանգությունը

WAF: OWASP կանոնները, երկրների/ASN, rate-limits բանալին (IP + cookie + token)։

DDoS: L3/4 scrubbing, L7-chekers, JS-chelengi/turnstile։

Ստորագրված URL/կտորներ մասնավոր ռեսուրսների համար (վիդեո/հաշվետվություններ) 'TTL + HMAC/EddDSA։

Geo-fencing և complaens (օրինակ, տարածաշրջանների արգելքը)։

8) Edge-comport (տրամաբանությունը եզրին)

Քեյսներ

Կերպարացում առանց քեշի 'հատվածներ (A/B), գեո, լեզուն edge-ում, իսկ բովանդակությունը' քեշիրացված։

Պատասխանների/վերնագրերի վերաշարադրումը, ռեդիրետները, AB-սպլիտները։

Հոսքային վավերացում 'JWT ստորագրության ստուգում, կապում բանալին։

Canary cookie/percent: Մրցույթի մի մասը նոր backend է։

Տեխնոլոգիաների օրինակներ ՝ Cloudflare Workers/Durable Objects, Fastly Compant @ Edge, AWS Lambda @ Edge։

9) Multi-CDN և գլոբալ պարիմետր

Պատճառները 'ծածկումը, SLA, արժեքը, տարածաշրջանի սահմանափակումները, հյուրանոցների մեկուսացումը։

GSLB/Traffic Steering: geo/latency/իրական սխալներով; health-ks մի քանի vantage կետերից։

Մեկ բանաձևի/վերնագրերի սխեմա (Surrogate-Key), համաժամեցված purge կանոնները։

Origin-shield-ը ընդհանուր է բոլոր CDN-ի համար, որպեսզի չվնասի origin-ը հաշմանդամության ժամանակ։

10) Տրամաբանություն և չափումներ

Հավաքեք

Hit ratio (cache, CDN → edge/origin), byte hit ratio.

Latency p50/p95/p99, error-rate կոդով/երթուղով։

Origin fetches: RPS/բայթ/սխալներ (պաշտպանություն ավելցուկ բացթողումներից)։

Տարածաշրջանային գրաֆիկները (POP/ASN/երկրում)։

Ինտեգրվեք Observability-ի հետ 'Prometheus (օպերատորների միջոցով), Grafana/OTel (push edge-logs)։

11) SEO и SPA/SSR

SEO էջերը SWR և կարճ TTL - արագ և «թարմ»։

Sitemap/robots-ը երկար ժամանակ է, բայց թույլ տվեք soft-purge։

Intel Worker: wwwww.int-cashing, wwww.fetch կրիտիկական ճանապարհներ, նորարարությունների իրականացում։

12) Ներարկումների և վերնագրերի օրինակներ

12. 1 Cache-Corl պրոֆիլներ

Կարգավիճակը fingerprint-ից


Cache-Control: public, max-age=31536000, immutable
HTML/SSR:

Cache-Control: public, max-age=60, s-maxage=600, stale-while-revalidate=60, stale-if-error=600
Surrogate-Control: max-age=600, stale-while-revalidate=120

API (քշված վիտրինը)


Cache-Control: public, s-maxage=60
Vary: Accept-Encoding

12. 2 NGINX (origin) - query/headers նորմալացումը։

nginx map $arg_utm_source $utm_skip { default 1; "" 0; }
map $args $normalized_args {
default "";
"~(^    &)v=([a-z0-9]+)(&    $)" "v=$2";
}
proxy_cache_key "$scheme://$host$request_uri?$normalized_args";
add_header Surrogate-Key "product:{{id}} category:{{cat}}";

12. 3 Fastly VCL - sox-purge և բանալիներ

vcl sub vcl_recv {
set req. hash += req. http. host req. url. path;
set req. hash += querystring. decode(req. url, "v,lang");
if (req. method == "PURGE") {
if (req. http. Fastly-Soft-Purge) { softpurge; } else { purge; }
return (synth(200, "purged"));
}
}
sub vcl_deliver {
set resp. http. Surrogate-Key = "product:42 category:food";
}

12. 4 Cloudflare Workers - URL ստորագրած

js export default {
async fetch(req, env) {
const url = new URL(req. url);
if (url. pathname. startsWith("/private/")) {
const token = url. searchParams. get("token");
if (!token! verify(token, env. SIGNING_KEY)) return new Response("Forbidden", { status: 403 });
}
return fetch(req);
}
}

12. 5 Lambda @ Edge - գեո տարբերակներ

js exports. handler = async (event) => {
const req = event. Records[0].cf. request;
const country = req. headers['cloudfront-viewer-country']?.[0]?.value          'US';
if (country === 'DE') req. headers['accept-language'] = [{ key:'Accept-Language', value:'de' }];
return req;
};

13) Մասնավոր տվյալները և API-ը

Երբեք մի քշեք մասնավոր պատասխանները առանց ստեղնաշարի մեկուսացման (նախկին օգտագործողը/105-toxen)։

Օգտագործեք Signed Cookies/Headers և 'Vary: Authorization' միայն խիստ վերահսկման ժամանակ (հակառակ դեպքում 'cache-bust)։

Անվտանգ այլընտրանք 'բաժանեք հանրային շերտը (քեշիրացված) և մասնավոր ինկուլիդները (ESI/edge-2019)։

14) Գեո/բովանդակության կանոնները

Պոլիոնային սահմանափակումները 'geo-deny edge, pleisholders' origin արգելափակման փոխարեն։

Տարիքային/կարգավորող բանկերը ռենդեր են edge-ում (չփչացնել քեշը)։

15) Anti-patterna

'108-cache, 108-store "ամբողջ կայքի համար CDN-էֆեկտի կորուստ է։

«Vary» -ը անկայուն վերնագրերով (օրինակ ՝ «User-Agent») կարդինալություն է։

Ամբողջ քեշի մաքրումը յուրաքանչյուր օրինակով։

Կարճ TTL-ն առանց SWR-ի նշվում է «փոթորիկ» origin-ում։

Անձնական էջերը տեղադրվում են առանց սեգմենտացիայի/token-2019։

Origin-shield-ի բացակայությունը շատ զուգահեռ բաց է։

16) Chek-Show-( 0-45 օր)

0-10 օր

Նվազեցնել ռեսուրսները 'ստատիկա (imutable )/HTML/API։

Ներառել gzip/no, HTTP/2/3, query, «Surrogate-Key» նորմալիզացիան։

Ներդրել SWR/IFE և հիմնական purge։

11-25 օր

Edge-օպտիմիզացիան (resize/medat), origin-shield։

Ստորագրված URL-ը մասնավոր լրատվամիջոցների համար, WAF/DDoS-պրոֆիլներ։

Dashbords: hit ratio, origin fetches, p95 POP-ով։

26-45 օր

Multi-CDN-ը կամ GSLB-ռազմավարությունը, քարարեյի քաշը պարագծի վրա։

Edge-compations-ը/AV/geo, soft-purge բաների համար։

Avto-purge-ը և purge ինտեգրումը CI/CD-ում։

17) Հասունության մետրերը

Byte hit ratio-ը ստատիկայի համար 85 տոկոսն է, որը կազմում է 60 տոկոսը HTML/պայմանական դինամիկայի համար։

Origin RPS-ը կայուն է գագաթնակետին (ոչ «փոթորիկներ»)։

P95 TTFB կրճատվել է 30 տոկոսով հիմնական տարածաշրջաններում։

պատասխանների% -ը պատահականության ժամանակ> 90% (օգտագործողը գրեթե չի նկատել)։

Ամբողջական ավտոմատիզացիան purge-ի մասերում է։

18) Եզրակացություն

CDN ստանդարտը բանալիներ/TTL/տարբերակներ, հաշմանդամության կարգապահություն և edge տրամաբանություն։ Ավելացրեք SWR/IFE, origin-shield, լրատվամիջոցների օպտիմիզացումը և խիստ անվտանգությունը (WAF, ստորագրված URL)։ Ստանդարտացրեք չափումները և ինտեգրեք purge-ը CI/CD-ում, և կստանաք արագ, տնտեսական և կայուն պարիմետր, որը պատրաստ է գագաթնակետային բեռներին և սև կարապներին։

Contact

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

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

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

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

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

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