GH GambleHub

Edge-keshi և POP

1) Ի՞ նչ է POP-ը և ինչու՞ «տարածք»

POP (Point of Presence) - բովանդակության առաքման ցանցի հանգույց (CDN/edge), որը երկրագրական մոտ է օգտագործողին։ Edge-kes-ը POP-ում պատասխանների պահպանման շերտն է, որը նվազեցնում է

Լատինականությունը (RTT-ից քիչ հաճախորդ)։

Բեռը և արժեքը origin (nol load)։

Գտնվում է տարածաշրջանների/ամպերի միջև (egress խնայողություններ)։

Էդգեն միայն քեշ չէ։ Ժամանակակից POP-ն աջակցում է L7-միկրոօրգանիզացիան, WAF/bot ֆիլտրերը, rate-limit, A/B/kanarechks, տրանսֆորմացիան և edge-compronics (ջութակներ/գործառույթներ)։

2) Edge-keshing ճարտարապետությունը

2. 1 Հարթ vs բազմաշերտ (tiered)

Հարթ 'յուրաքանչյուր POP-ն գնում է origin։ Պարզ է, բայց թանկ է origin-ի համար։

Tiered/Shield: POP no Shield POP (կենտրոնական քեշը) wwww.origin։ Shield akumulation-propachi-ը ստեղծում է «հովանոցը» origin-ի համար։

2. 2 Տարածաշրջանային հատվածներ

Կիսեք քեշային օրինագծերը տարածաշրջաններում/հայտարարություններում (GDPR/տվյալների տեղայնացումը)։

Տարբերակը ՝ «EU-only POPs» և «Global POPs», առանձին բանալիներ/կանոններ։

2. 3 Anycase + latency/geo-aultrouting

Anycript-ը հաճախորդին տանում է մոտակա POP-ում BGP-ով։

Geo/latency-aere-ը անցնում է ROR/wwww.puls-ի միջև RTT/սխալների ակտիվ չափումների վրա։

3) Քեշի բանալիներ, «Vary», TTL և թարմություն

3. 1 Դիզայն 2019

Նորմալիզացրեք հարցումները 'մուտքագրեք query պարամետրերը, հեռացրեք աղմուկը (utm, ref)։

Միացրեք սեմանական առանցքները '«tenault», «www.ale», «սխեմայի տարբերակը» («v = 3»), բայց խուսափեք PII-ից։

Մասնավոր բովանդակության համար 'բաժանել հանրային և մասնավոր քեշը (տե՛ ս 387)։

3. 2 Քեշինգի վերահսկողություն (HTTP)

Վերնագրեր

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

«ETag »/« Last-Modified» պայմանական GET (304) համար։

Vary: Նվազագույնի հասցրեք կարդինալությունը («Accept-Encoding», «Accept-Language», երբեմն «Authorization »/« Cookie» մասնավոր ճանապարհների համար)։

Micro-cache-ը «գրեթե դինամիկայի» համար '1-5 վայրկյան + SWR։

3. 3 Stale ռազմավարություն

SWR (stale-while-revalidate), մենք տալիս ենք հնացած պատասխանը և ֆոնը թարմացնում ենք։

SIE (stale-if-error) 'origin սխալի դեպքում մենք օգտագործում ենք մինչև «SIE' TTL»։

Soft/Hard TTL 'փափուկ ժամանակահատվածը (կարող եք stale), կոշտ (ամբողջական բացթողումներ)։

4) Հաշմանդամություն. Ինչպե՞ ս նորարարել «տարածքը»

4. 1 Բանալիներ և թեստեր

PURGE/BAN URL/նախածանցը կոպիտ է, բայց արագ։

Surrogate-Key/Tags: Նշանակեք դելեգներ («article: 42», «category: 7»), վերցրեք թեգը 'զանգվածային հաշմանդամություն առանց URL-ի։

4. 2 Իրադարձություն հաշմանդամություն

Երբ տվյալները փոխեք origin-ում, հրապարակեք իրադարձությունները (Kafka/NATS) ռուսական edge-հաշմանդամները առաջացնում են BAN/PURGE/soft-expire։

4. 3 Արտեֆակտների տարբերակումը

Ստատիկայի համար 'wwww.ent-hash ֆայլի անունով։

API-ի համար փոխեք ստեղնաշարի տարբերակը («v = 4») անհամատեղելի փոփոխություններով։

5) Origin պաշտպանությունը և արտադրողականությունը

5. 1 Origin shielding

Միացրեք Shield POP-ը որպես արդյունաբերական միակ կետ, որը հակիրճ նվազեցնում է origin փոթորիկը։

5. 2 Coalescing/single-flight

Եզրին մի հարցում «արթնացնում» է քեշը բաց թողնելիս։ մյուսները սպասում են (ոչ բռնի stampede)։

5. 3 Rate-limit/Queue/Shedding на edge

Ծանրաբեռնվածության դեպքում գցեք ցածր պրիմիտիվ/անանուն հարցումները POP-ում, ոչ թե origin-ում։

5. 4 Signed URL / Signed Cookie

Origin-ը թաքնված է edge-ի համար։ Մասնավոր բովանդակության հասանելիությունը ստորագրված հղումներով/կտորներով TTL-ի և ալգորիթմների հետ (IP/Geo/Path), որպեսզի չտրվի «բոլորին»։

6) Տրանսպորտ և վերափոխում

6. 1 HTTP/2–3 и QUIC

HTTP/2 'բազմաբնույթ, հեդեր-ագրեսիա։

HTTP/3/QUIC: ավելի քիչ HOL արգելափակում և ավելի լավ է կորած ալիքներում p95/p99 TTFB-ից ցածր։

6. 2 Ֆինլանդիա և պատկերներ

Brotli-ը տեքստի համար, AVIF/PrO-ը պատկերների համար, image-resizing եզրին (responsive sizes, DPR)։

Քեշի տարբերակները ֆորմատով/չափով 'բանալիները ներառում են «width/www.at» (կամ «Vary: Accept »/Client-Hinae)։

6. 3 TFC/0-RTT (ուշադիր)

Նստաշրջանների ռեսպլինգը արագացնում է տեղադրումը, 0-RTT-ը կարող է խոցելի լինել replay-ի համար, միացրեք միայն idempotent GET-ի համար։

7) Հանրային vs մասնավոր edge-kash

7. 1 Հանրային

«Cache-Corl: public, s-maxage =...» և նվազագույն «Vary»։

Հարմար է ռուսական, նորությունների, պատկերների, CDN ստատիկայի համար։

7. 2 Մասնավոր/անձնավորված

Տարբերակները

Չփչացնել գնդաձև մակարդակում '«Cache-Control: private» (զննարկիչ)։

Key-segmentation: Միացրեք tenault/user-id (կամ token-hash) բանալին և տեղադրեք որպես private-shared (զգուշորեն պահեստավորման և PII)։

Signed cookies-ը և Edge-auth-ը հրապարակված են, բայց ստորագրության հասանելիությունը (տարբերակներ ՝ encrypted session state) եզրին։

8) Edge-compute (Workers/Functions)

POP-ի թեթև գործառույթները 'ճանապարհի/վերնագրերի վերաշարադրումը, A/B-սպլիտը, կոդավորման նորմալացումը, SWR տրամաբանությունը, հարևան ռեսուրսների wwww.fetch։

Տեղական KV/Cache API-ը POP-ի վրա միլիոնավոր վիրահատությունների համար։

Սահմանափակումներ ՝ կարճ թայմաուտներ/հիշողություն, երկարատև միգրանտների բացակայություն, ուշադիր աշխատանք PII/ռոտացիայի հետ։

Կեղծ օրինակ (Workers-like)

js export default {
async fetch(req, env) {
const key = normalize(req);
let res = await caches. default. match(key);
if (res) return withHitHeader(res, "HIT");

res = await fetch(req, { cf: { cacheEverything: true }});
const ttl = computeTTL(res);
eventWaitUntil(caches. default. put(key, res. clone(), { expirationTtl: ttl }));
return withHitHeader(res, "MISS");
}
}

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

9. 1 Nginx: micro-cache + SWR

nginx proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=api:200m inactive=30m;
map $request_method $skip_cache { default 0; POST 1; PUT 1; DELETE 1; }

server {
location /api/list {
proxy_cache api;
proxy_cache_key "$scheme://$host$uri$is_args$args";
proxy_cache_valid 200 2s;          # micro-cache proxy_cache_use_stale error timeout updating;# SIE + SWR proxy_cache_background_update on;
add_header X-Edge-Cache $upstream_cache_status;
proxy_pass http://origin_pool;
}
}

9. 2 Varnish: surrogate keys и BAN

vcl sub vcl_recv {
if (req. method == "BAN") {
if (req. http. Surrogate-Key) {
ban("obj. http. Surrogate-Key ~ " + req. http. Surrogate-Key);
return (synth(200, "Banned"));
}
}
}

sub vcl_deliver {
set resp. http. Surrogate-Key = "article:42 tag:author:7";
set resp. http. Cache-Control = "public, s-maxage=300, stale-while-revalidate=60";
}

9. 3 Envoy (edge-cache ֆիլտրը)

yaml http_filters:
- name: envoy. filters. http. cache typed_config:
"@type": type. googleapis. com/envoy. extensions. filters. http. cache. v3. CacheConfig typed_config:
"@type": type. googleapis. com/envoy. extensions. http. cache. simple_http_cache. v3. SimpleHttpCacheConfig

9. 4 CloudFront-style վարքագիծը (ուրվագիծ)

Behavior A: '/images/" - երկար TTL, ագրեսիա, vary ձևերով։

Behavior B: '/api/" - կարճ TTL, SWR, signed cookie, WAF/bot-պաշտպանություն։

Origin Shield-ը միացված է, 500/502/504 ռուբլիներ 'stale-if-error "։

10) Դիտարկումը, SLO և հաշվետվությունները

10. 1 Մետրիկա

cache _ hit _ ratio (POP/տարածաշրջանի/rome), byte _ hit _ ratio։

origin_offload = 1 − (origin_requests / edge_requests).

TTFB/TTL քվանտներով, stale _ responses _ total, revalidication _ total։

stampede_prevented_total, coalesced_waiters.

shield _ hit _ ratio (tiered), origin _ egress _ bytes (արժեքը)։

10. 2 Logs/treiss

«HIT/MISS/STALE/MSATING/BYPASS», բանալին, TTL, POP, tenae։

Բաշխված թրեյսներում նշեք աղբյուրը («edge», «origin») և պատճառը (revalidate/stale/error)։

10. 3 SLO օրինակներ

«Для `/api/list`: p99 TTFB ≤ 250 мс, edge hit ≥ 70%, byte-hit ≥ 80%, origin error-offload ≥ 90%».

«» stale-if-error «պատասխանները օրական 1 տոկոսն են»։

11) Անվտանգությունը, գաղտնիությունը, համապատասխանությունը

WAF/bot-կառավարում 'edge ֆիլտրման համար մինչև origin։

Տվյալների արդյունավետությունը 'պահեք մասնավոր արտեֆակտները միայն թույլատրելի POP-ում։ օգտագործեք օրեգոն-հատուկ բանալիներ և ACL-ներ։

Ստորագրությունները և edge-ը, մի տվեք մասնավոր պատասխաններ հանրային կեշից։

PII-նվազեցում. Մի միացրեք անձնական տվյալները բանալիների մեջ։ ծածկագրեք cookie; կարճ TTL կերպարների համար։

12) Տիպիկ բաղադրատոմսեր

12. 1 «Գրեթե դինամիկա» (ժապավեն/ցուցակներ)

Micro-cache 1-3 + SWR edge, shield ներառվել է, single-flight, negative-cache դատարկ արդյունքների համար 1-5 վ։

12. 2 Պատկերների ամպեր/մեդիա

Edge-resaiz/անջատումը (Pro P/AVIF), քեշի տարբերակները 'width/www.at ", երկար TTL, անվստահություն բովանդակության թեորներով։

12. 3 API կերպարներ

«Cache-Control: private» կամ signed cookie + բանալին սեգմենտացիա (tenae), կարճ TTL, SWR-ի համար «գրեթե հանրային» պատասխանների համար։

12. 4 Մեծ վաճառքներ/պիկի

Գրելով հիմնական ռեսուրսները (wwarm), TTL ավելացումը կարգավիճակի վրա, ագրեսիվ SWR/SIE, կոշտ սահմանաչափեր origin վրա, որը ներառում է Shield-ը։

13) Anti-patterna

Առանց «Vary» -ի, տարբերվող պատասխաններով, արտահոսքը/սխալ տվյալները։

Հսկայական «Vary» -ը բացատրում է կարդինալությունը ցածր hit։

Ընդհանուր քեշը 2019/experiments-ի համար բացատրվում է աղտոտումը։

Ոչ single-flight-ը բացատրում է origin փոթորիկը։

SWR-ն առանց սահմանափակումների նորարարության և validate հարցումների մրցավազքը։

Edge-kes-ը մասնավոր պատասխաններ է որպես public-ը։

Tiered/shield-ի բացակայությունը worldwide բեռի դեպքում նախատեսվում է վերագտնել origin։

14) Ներդրման չեկի ցուցակ

  • Կարատեք POP ծածկույթը, միացրեք anycript + latency-routing։
  • Ընտրեք tiered/shield և single-flight/coalescing քաղաքականությունը։
  • Նախագծեք բանալիները և Vary (նվազագույն կարդինալությունը, առանց PII)։
  • TTL/SWR/SIE (som/hard TTL) և negative-cache։
  • Միացրեք signed URL/cookie, սայթաքեք origin, միացրեք WAF/bot ֆիլտրերը։
  • Կազմակերպեք հաշմանդամություն 'Surrogate-Key/BAN + event-driven։
  • Բարձրացրեք hit/byte-hit/www.load/TTFB և per-POP dashbords։
  • Տաքացնելով գագաթնակետին, runbooks փոթորկի/ծանրաբեռնվածության վրա։
  • Գաղտնիության/հավատարմության թեստեր, մրցույթի աուդիտ և քաղաքական գործիչ։
  • SLO/սխալ բյուջե edge-ի համար և TTL/SWR ավտոմեքենաների-թվիկների չափանիշները։

15) FAQ

Q 'Ինչպե՞ ս ընտրել TTL-ն եզրին։

A 'Հեռացրեք թույլատրելի հոգնածությունից և նպատակներից hit-ratio։ «Գրեթե դինամիկայի» համար '1-5 + SWR; գրացուցակների/պատկերների համար 'մի րոպե/ժամ հաշմանդամություն ունեցող անձանց համար' իրադարձությունների/թեստերի միջոցով։

Q: Ե՞ րբ է անհրաժեշտ Shield POP-ը։

A 'Գլոբալ օպտիկայի կամ տաք բաների դեպքում, shield-ը կտրուկ նվազեցնում է origin բացթողումները և կայունացնում է «գերագնահատող» ալիքները։

Q 'Ինչպե՞ ս վարվել հեղինակային իրավունքի պատասխանները։

A: Կամ 'private' (զննարկիչ), կամ public-ը signed cookie/URL-ից և ստեղնաշարի հատվածից (առանց PII) կամ ընդհանուր առմամբ bypass քննադատական անձնական տվյալների համար։

Q 'Ի՞ նչ անել HTTP/3-ի հետ։

Ա 'Ներառեք, հատկապես հաղթում է բջջային/կորած ալիքը։ Վերահսկեք կոդավորման և fallback-ի համատեղելիությունը HTTP/2-ում։

16) Արդյունքները

Edge-keshi և POP ցանցը արագընթաց և տնտեսական պլատֆորմների հիմքն է։ Հաջողությունը որոշվում է ճիշտ բանալիով և «Vary», խելացի TTL/SWR/SIE, հաշմանդամություն/իրադարձություններ, tiered/shield պաշտպանություն origin, ինչպես նաև դիտարկելով (hit/www.load/TTFB) և անվտանգության/մասնավորության։ Հետևեք չեկի թերթին, և «ծայրը» կդառնա ձեր արագացուցիչը, ոչ թե անակնկալների աղբյուրը։

Contact

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

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

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

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

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

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