Caches Edge ва POP
1) POP чист ва чаро "канор"
POP (Нуқтаи Ҳузур) як шабакаи таҳвили мундариҷа (CDN/edge) аст, ки аз ҷиҳати ҷуғрофӣ ба корбар наздик аст. Кэши канорӣ - қабати вокунишҳои мустақим дар POP, ки коҳиш медиҳад:- Таъхир (камтар RTT пеш аз муштарӣ).
- Сарборӣ ва арзиши як пайдоиш (сарборӣ).
- Ҳаракати нақлиёт дар байни минтақаҳо/абрҳо (сарфакорона).
Edge на танҳо кэш аст. POP-ҳои муосир масири L7, филтрҳои WAF/бот, меъёри лимит, A/B/канарейкаҳо, тағирот ва ҳисобкунии канорӣ (скриптҳо/функсияҳо) -ро дастгирӣ мекунанд.
2) Меъмории caching Edge
2. 1 ҳамвор vs сатҳи
Ҳамвор: Ҳар як POP ба пайдоиш меравад. Содда, аммо барои пайдоиш гарон аст.
Tiered/Shield: POP → Shield POP (кэши марказӣ) → пайдоиш. Сипар пазмонҳои кэшро ҷамъ мекунад, чатрро барои пайдоиш эҷод мекунад.
2. 2 сегменти минтақавӣ
Соҳаҳои ҷудогонаи кэшкунӣ аз рӯи минтақа/қаламрав (GDPR/маҳаллисозии маълумот).
Вариант: "Танҳо POP-ҳои ИА" ва "Global POP-ҳо", калидҳо/қоидаҳои алоҳида.
2. 3 Хатсайри Anycast + таъхир/масири гео-огоҳӣ
Anycast муштариро ба наздиктарин POP тавассути BGP меорад.
Гузаришҳои гео/дермонӣ дар байни ҳавзҳои POP/минтақавӣ оид ба андозагирии фаъоли RTT/хато.
3) Калидҳои кэш, 'Vary', TTL ва тару тоза
3. 1 Тарҳи калидӣ
Муқаррарӣ кардани дархостҳо: ҷудо кардани параметрҳои дархост, нест кардани садо (utm, ref).
Меҳварҳои семантикиро дар бар гиред: 'иҷорагир', 'locale', 'schema version' ('v = 3'), аммо аз PII канорагирӣ кунед.
Барои мундариҷаи хусусӣ кэши давлатӣ ва хусусиро ҷудо кунед (ниг. § 7).
3. 2 Назорати кэш (HTTP)
Унвонҳо:- 'Назорати кэш: оммавӣ, макс-синну сол = 60, s-maxage = 300, кӯҳна-дар ҳоле-revalidate = 60, кӯҳна-агар-хато = 120'
- 'ET' ag '/' GET-ҳои шартии охирин-тағирёфта (304).
- Фарқ кунед: кардинализмро кам кунед ('Қабул-Рамзгузорӣ', 'Қабул-Забон', баъзан 'Авторизатсия '/' Роҳҳои хусусии Cookie' for).
- Микро-кэш барои "наздик-баландгӯяк": 1-5 сония + SWR.
3. 3 Стратегияҳои кӯҳна
SWR (кӯҳна-ҳангоми бозсозӣ): бо замина ҷавоб ва навсозии кӯҳна диҳед.
SIE (хатои кӯҳна): дар сурати хатогии пайдоиш, мо кэшро пеш аз 'SIE' -TTTL истифода мебарем.
TTL-и мулоим/сахт: истилоҳи мулоим (метавонад кӯҳна), сахт (пазмони пурра).
4) маъюбӣ: чӣ гуна навсозии "канор"
4. 1 Аз рӯи калид ва барчасбҳо
PURGE/BAN аз ҷониби URL/префикс - ноҳамвор, вале зуд.
Суррогат-Калид/Барчаспҳо: барчаспҳоро ба объектҳо таъин кунед ('мақола: 42', 'категория: 7'), манъ кардани барчасп - маъюбии оммавӣ бе қувваи бераҳмонаи URL.
4. 2 Маъюбии ҳодиса
Ҳангоми тағир додани маълумот дар ибтидо, рӯйдодҳо нашр кунед (Kafka/NATS) → занги ғайрифаъол BAN/PURGE/soft-хотима меёбад.
4. 3 Тарҷумаи Artifact
Барои статикӣ - мундариҷа-ҳаш дар номи файл.
Барои API-ҳо версияи калидиро ('v = 4') барои тағиротҳои номувофиқ иваз кунед.
5) Муҳофизат ва иҷрои пайдоиш
5. 1 Муҳофизати пайдоиш
POP Shield POP-ро ҳамчун як нуқтаи ягонаи пазмон ба таври аслӣ афзоиш диҳед.
5. 2 Coalescing/як парвоз
Дар канор, як дархост кэшро ҳангоми пазмон шудан "мезанад"; боқимонда интизор шавед (мӯҳр зада намешавад).
5. 3 Меъёри маҳдудият/навбат/рехтани на канор
Агар изофабор бошад, дархостҳои афзалиятнок/беномро ба POP партоед, на пайдоиш.
5. 4 Имзои URL/Cookie
Пайдоиш дар паси канор пинҳон аст. Дастрасӣ ба мундариҷаи хусусӣ - тавассути истинодҳои имзошуда/кукиҳо бо TTL ва атрибутҳо (IP/Geo/Path), то ба "ҳама" паҳн нашавад.
6) Нақлиёт ва дигаргунӣ
6. 1 HTTP/2-3 i QUIC
HTTP/2: мултиплекссия, фишурдани сарлавҳа.
HTTP/3/QUIC: қуфлҳои камтар аз HOL ва беҳтар дар каналҳои гумшуда дар зер p95/p99 TTFB.
6. 2 Фишурдасозӣ ва тасвир
Brotli барои матн, AVIF/WebP барои тасвирҳо, андозагирии тасвир дар канор (андозаҳои ҷавобгӯ, DPR).
Вариантҳои кэш аз рӯи формат/андоза: калидҳо 'width/format' (ё 'Vary: Қабул '/Client-Hints) -ро дар бар мегиранд.
6. 3 TLS/0-RTT (тозаву озода)
Сессияи такрории суръатро насб мекунад, 0-RTT метавонад барои такрори → фаъол танҳо барои GET-ҳои idempotent осебпазир бошад.
7) Кэши канори давлатӣ ва хусусӣ
7. 1 Ҷамъиятӣ
'Назорати кэш: ҷамъиятӣ, s-maxage =... 'ва ҳадди аққал' Vary '
Барои каталог, ахбор, расмҳо, статикӣ CDN мувофиқ аст.
7. 2 Хусусӣ/инфиродӣ
Интихобҳо:- Дар сатҳи муштарак кэш накунед: 'Кэш-Назорат: хусусӣ' (кэши браузер).
- Тақсимоти калидҳо: ба калид иҷорагир/корбар-id (ё аломати ҳаш) -ро дохил кунед ва ҳамчун хусусӣ мубодила кунед (бодиққат бо нигоҳдорӣ ва PII).
- Кукиҳои имзошуда ва Edge-auth: кэш оммавӣ аст, аммо дастрасӣ бо имзо (имконот бо ҳолати сессияи рамзшуда дар канор).
8) Ҳисобкунии Edge (Коргарон/Вазифаҳо)
Функсияҳои осон дар POP: навиштани роҳ/сарлавҳаҳо, тақсимоти A/B, нормализатсияи калидҳо, мантиқи SWR, prefetch захираҳои ҳамсоя.
Маҳаллӣ KV/Cache API оид ба POP барои амалиёти миллисекунд.
Маҳдудиятҳо: танаффуси кӯтоҳ/хотира, набудани робитаҳои дарозмуддат, кори бодиққат бо PII/минтақавӣ.
Намунаи псевдо (ба коргарон монанд)
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: микро-кэш + 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 Лак: калидҳои суррогатӣ и БАН
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 Фиристанда (филтри канори кэш)
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 Рафтори услуби абрӣ (thumbnail)
Рафтори A: '/тасвирҳо/' - TTL дароз, фишурдасозӣ, дар форматҳо фарқ мекунанд.
Рафтори B: '/api/' - кӯтоҳ TTL, SWR, куки имзошуда, муҳофизати WAF/бот.
Сипари пайдоиш фаъол аст, статусҳо 500/502/504 → 'кӯҳна-агар-хато'.
10) Мушоҳида, SLO ва гузоришдиҳӣ
10. 1 Ченак
cache_hit_ratio (бо POP/минтақа/масир), byte_hit_ratio.
origin_offload = 1 − (origin_requests/ edge_requests).
TTFB/TTL аз рӯи миқдор, stale_responses_total, revalidations_total.
stampede_prevented_total, coalesced_waiters.
shield_hit_ratio (агар дараҷа бошад), origin_egress_bytes (арзиш).
10. 2 Гузоришҳо/Роҳҳо
Сабтҳо бо нишони 'HIT/MISS/STALE/UPDATING/BYPASS', калид, TTL, POP, иҷорагир.
Дар нишонаҳои тақсимшуда сарчашма ('канор', 'пайдоиш') ва сабабро (дубора тасдиқ/кӯҳна/хато) қайд кунед.
10. 3 мисоли SLO
"Dlya '/api/list ': p99 TTFB 250 мс, канори он 70%, байт-хит 80%, хатогии пайдоиш 90%".
"Меъёри посухҳои" хатои кӯҳна "дар як рӯз 1% -ро ташкил медиҳад".
11) Амният, махфият, риояи
Идоракунии WAF/бот - дар канори филтр ба пайдоиш.
Минтақавии маълумот: артефактҳои хусусиро танҳо дар POP-ҳои мӯътабар нигоҳ доред; Калидҳои махсуси минтақа ва ACL-ро истифода баред.
Имзоҳо ва аломатҳои дар канор буда, аз кэши ҷамъиятӣ ҷавобҳои хусусӣ намедиҳанд.
Кам кардани PII: маълумоти шахсиро дар калидҳо дохил накунед; кукиҳоро рамзгузорӣ кунед; TTL-ҳои кӯтоҳ барои фардикунонӣ.
12) Дорухатҳои маъмулӣ
12. 1 "Қариб динамикӣ" (лентаҳо/рӯйхатҳо)
Микро-кэш 1-3 бо + SWR дар канор, сипар фаъол аст, як парвоз, манфӣ-кэш барои натиҷаҳои холӣ 1-5 с.
12. 2 Абрҳои тасвир/ВАО
Recise/formatting Edge (Webp/AVIF), имконоти кэш аз рӯи 'width/format', TTL дароз, маъюбӣ аз рӯи барчаспҳои мундариҷа.
12. 3 API бо фардикунонӣ
'Кэш-Назорат: хусусӣ' куки + сегментатсияи калидӣ (иҷорагир), TTL-ҳои кӯтоҳ, SWR-ҳо барои қисмҳои "қариб ҷамъиятӣ" -и посух.
12. 4 Фурӯшҳои калон/интихобҳо
Гарм кардани захираҳои калидӣ (пеш аз ҷанг), зиёд кардани TTL барои статика, SWR/SIE хашмгин, маҳдудиятҳои сахт барои пайдоиш, Shield дохил карда шудааст.
13) Анти-намунаҳо
Не 'Vary' бо ҷавобҳои гуногун → ихроҷ/маълумоти нодуруст.
Бузург 'Vary' → кардинализм → зарбаи паст.
Кэши маъмул барои prod/experiments → ифлосшавӣ.
Ҳеҷ гуна парвози якдафъаина → тӯфони пайдоишро аз даст намедиҳад.
SWR бидуни маҳдудият → навсозии нажодҳо ва тарма дархостҳоро тасдиқ мекунад.
Кэши канори посухҳои хусусӣ ҳамчун ҳодисаҳои амнияти ҷамъиятӣ
Набудани сатҳи сипар/сипар дар саросари ҷаҳон аз ҳад зиёд гарм шудан.
14) Рӯйхати назорати амалисозӣ
- Фарогирии харитаи POP, имкон диҳед, ки ҳама гуна масир + хатсайрҳои таъхирнопазир.
- Сиёсати сатҳӣ/сипарӣ ва як парвоз/муттаҳидкуниро интихоб кунед.
- Калидҳои тарроҳӣ ва Vary (ҳадди ақали кардиналӣ, PII нест).
- Танзими TTL/SWR/SIE (мулоим/сахт TTL) ва манфӣ-кэш.
- URL/куки имзошударо фаъол созед, пайдоиши онро пинҳон кунед, филтрҳои WAF/ботро фаъол созед.
- Ташкили маъюбӣ: Суррогат-Калид/BAN + ба рӯйдод асос ёфтааст.
- Баланд бардоштани ченакҳои хит/байт-хит/боркунӣ/TTFB ва панели панели POP.
- Пеш аз қуллаҳо гарм шудан, дафтарчаҳо барои тӯфон/изофабор.
- Санҷишҳои махфият/минтақавӣ, аудити калидӣ ва сиёсат.
- SLO/буҷети хато барои меъёрҳои канорӣ ва TTL/SWR.
15) FAQ
Савол: Чӣ гуна TTL-ро дар канор интихоб кардан мумкин аст?
Ҷ: Ҳадафи кӯҳнаи иҷозатдодашуда ва ҳадафи таносубро тела диҳед. Барои "динамикаи наздик" - 1-5 s + SWR; барои феҳристҳо/тасвирҳо - дақиқаҳо/соатҳо бо маъюбӣ аз рӯи рӯйдодҳо/барчаспҳо.
Савол: Сипари POP кай лозим аст?
Ҷ: Бо трафики ҷаҳонӣ ё калидҳои гарм: сипар пазмонҳоро аз пайдоиш ба таври назаррас коҳиш медиҳад ва мавҷҳои "боло рафтан" -ро ба эътидол меорад.
Савол: Чӣ гуна ман ҷавобҳои ваколатдорро кэш мекунам?
A: Ё 'хусусӣ' (браузер) ё оммавӣ бо куки/URL ва сегментатсияи калидӣ (бидуни PII) ё умуман барои маълумоти интиқодӣ гузаштан.
Савол: Бо HTTP/3 чӣ бояд кард?
A: Фаъол: Канали мобилӣ/гумшуда махсусан пирӯз мешавад. Мутобиқати прокси ва пастравиро дар HTTP/2 назорат кунед.
16) Натиҷаҳо
Caches Edge ва шабакаи POP асоси платформаҳои баландсуръат ва иқтисодӣ мебошанд. Муваффақият бо калиди дуруст ва 'Vary', TTL/SWR/SIE, маъюбии барчасп/ҳодиса, муҳофизати сатҳи/сипар, инчунин мушоҳида (hit/offload/TTFB) ва интизоми амният/махфият муайян карда мешавад. Рӯйхати назоратро пайгирӣ кунед - ва "канор" суръатбахшандаи шумо хоҳад буд, на манбаи ногаҳонӣ.