CDN ва канории caching
CDN ва кэши канорӣ
1) Ҳадафҳо
CDN (Шабакаи таҳвили мундариҷа) ниҳонӣ ва сарбориро ба пайдоиш коҳиш медиҳад: мундариҷаи статикӣ ва шартан динамикиро дар гиреҳҳои канор нигоҳ медорад, миқёс, субот ва амниятро таъмин мекунад (DD manufs/WAF), мантиқи канорро илова мекунад (навиштани посухҳо/дархостҳо, аутентификатсия, A/B).
2) Модели кэш ва калидҳо
Ключ кеша = 'схема + хост + роҳ +? (параметрҳои интихобшуда) + сарлавҳаҳо (Vary)'
Тавсия дода мешавад:- Талаботро муқаррар кунед ('utm _' истисно кунед,' v ',' lang ',' кишвар 'ва ғайра).
- 'Vary' -ро кам кунед (масалан, 'Фарқ: Қабул кардан-рамзгузорӣ, Қабул-Забон'), аз 'Vary:' канорагирӣ кунед.
- Барои API - калид аз муайянкунандаи масир + версия (семвер, ҳаш, сохтани id) + дархост/сарлавҳаҳои зарурӣ (масалан, 'X-иҷорагир').
- Барои саҳифаҳои инфиродӣ - сегментатсияи канорӣ (аз рӯи куки/гео) ё Skip-Cache.
3) Сиёсатҳо ва сарлавҳаҳои TTL
Сарлавҳаҳои асосӣ:- 'Назорати кэш: оммавӣ, макс-синну сол = 300, s-maxage = 3600, кӯҳна-дар ҳоле-revalidate = 60, кӯҳна-агар-хато = 300'
- 'Surrogate-Control' (агар дастгирӣ шавад) сиёсати алоҳида барои CDN-ҳо ғайр аз браузер мебошад.
- 'ET '/' Охирин тағирёфта' - дархостҳои шартӣ (304) ва сарфаи трафик.
- Барои хусусӣ: 'Кэш-Назорат: хусусӣ, мағоза нест', агар нигоҳ дошта нашавад.
- API-ҳо, ки ба кэш иҷозат медиҳанд: 'Кэш-Назорат: оммавӣ, s-maxage = 60' + калиди версия.
Равиши тавсияшаванда: захираҳои "абадӣ" (бо изи ангушт дар номи файл) → 'max-age = 31536000, тағйирнопазир'; "саҳифаҳо/JSON" → кӯтоҳ TTL + SWR.
4) маъюбӣ: тозакунӣ/тозакунӣ
Тозакунӣ аз ҷониби URL: нуқта.
Тозакунӣ аз рӯи барчасп/калид: тозакунии гурӯҳӣ (истифодаи 'Суррогат-Калид: маҳсулот: 42 категория: хӯрок').
Тозакунии нарм: мундариҷаи "кӯҳна" -ро қайд мекунад, канор то гирифтани версияи нав кӯҳна мешавад.
Гармкунии "гарм": пас аз ҷойгиркунӣ саҳифаҳои асосиро аз минтақаҳо кашед.
5) Намунаҳои иҷрои Edge
Stale-When-Revalidate: вокуниши зуд бо нусхаи "кӯҳна" + навсозии замина.
Prefetch захираҳои муҳим (пешакӣ, preconnect, dns-prefetch).
Фишурдасозӣ: gzip/br (барои матн), zstd агар CDN пуштибонӣ шавад.
HTTP/2/3 (QUIC): мултиплексинг ва таъхири камтар.
Барқароркунии ҷаласаи TLS ва часпонидани OCSP дар периметр.
6) Тасвирҳо ва видеоҳо
Оптимизатсияи тасвир дар канор: гуфтушунидҳои андозагирӣ/формат ('Қабул: тасвир/авиф, вебп'), авто-веб/AVIF, DPR-варианты.
Танбалӣ-сарбории ҷавобдиҳанда ('srcset', 'андоза').
Видео: HLS/DASH, пораҳои MP4, сипари пайдоиш (кэши марказӣ) барои коҳиш додани тӯфон.
Хидматҳои Thumbnail ва URL-ҳои имзошуда барои тасвирҳои хусусӣ.
7) Амнияти периметрӣ
WAF: Қоидаҳои OWASP, бастани кишвар/ASN, маҳдудиятҳои меъёрӣ бо калид (IP + куки + токен).
DD ho 'S: L3/4 тозакунӣ, санҷишҳои L7, мушкилоти JS/турникет.
URL/кукиҳои имзошуда барои захираҳои хусусӣ (видео/ҳисобот): TTL + HMAC/EDDSA.
Гео-тавораҳо ва мувофиқат (масалан, манъи минтақаҳо).
8) Edge-compute (мантиқ дар канор)
Парвандаҳо:- Фардикунонӣ бидуни шикастани кэш: сегментҳо (A/B), гео, забон дар канор ва мундариҷа кэш карда мешаванд.
- Навиштани ҷавобҳо/унвонҳо, самтҳо, тақсимоти AB.
- Аутентификатсия дар асоси токен: Санҷиши имзои JWT, ҳатмии калидҳо.
- Канария аз рӯи куки/фоиз: қисми трафик ба қафои нав.
Намунаҳои технология иборатанд аз коргарони Cloudflare/Объектҳои пойдор, Fastly Compute @ Edge, AWS Lambda @ Edge.
9) периметри бисёрҷонибаи CDN ва глобалӣ
Сабабҳо: фарогирӣ, SLA, арзиш, маҳдудиятҳои минтақавӣ, ҷудо кардани ҳодисаҳо.
Идоракунии GSLB/трафик: оид ба хатогиҳои гео/дермонӣ/воқеӣ; санҷишҳои тиббӣ аз нуқтаҳои сершумор.
Нақшаи ягонаи калид/сарлавҳа (Суррогат-Калид), қоидаҳои ҳамоҳангшудаи тозакунӣ.
Пайдоиши сипар барои ҳама CDN-ҳо маъмул аст, то пайдоиши маъюбон "зарба нарасонад".
10) Воридшавӣ ва ченакҳо
Ҷамъ кардан:- Таносуби хит (кэш, CDN → канор/пайдоиш), таносуби байт.
- Latency p50/p95/p99, хатогӣ аз рӯи рамз/масир.
- Пайдоиши пайдоиш: RPS/байт/хатогиҳо (муҳофизат аз пазмонҳои зиёдатӣ).
- Диаграммаҳои минтақавӣ (аз ҷониби POP/ASN/кишвар).
- Ҳамгироӣ бо мушоҳидаҳо: Prometheus (тавассути содиркунандагон кашед), Grafana/OTel (тела аз гузоришҳои канорӣ).
11) СЕО и СПА/ҶШС
Саҳифаҳои SEO бо SWR ва TTL кӯтоҳ зуд ва тару тоза мебошанд.
Sitemap/роботҳо - мо муддати дароз кэш мекунем, аммо ба тозакунии мулоим иҷозат медиҳем.
Корманди хидматрасонӣ: кэшкунии офлайнӣ, префетчҳои роҳҳои муҳим, навсозиҳои мақсаднок.
12) Конфигуратсияҳо ва сарлавҳаҳои намуна
12. 1 Профилҳои назорати кэш
Статикӣ бо изи ангушт:
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 (пайдоиш) - нормализатсияи дархост/сарлавҳа
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 VCL зуд - тозакунии мулоим ва калидҳо
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 Коргарони абрнок - 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 - Имконоти Geo
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
Ҳеҷ гоҳ посухҳои хусусиро бидуни ҷудокунии калидӣ (барои як корбар/барои як нишона) нигоҳ надоред.
Истифодаи кукиҳо/сарлавҳаҳои имзошуда ва 'Vary: Авторизатсия' бо назорати қатъӣ (дар акси ҳол - кэш-бюст).
Алтернативаи бехатар: қабати ҷамъиятӣ (кэшшуда) ва фарогирии хусусиро (таркиби ESI/канорӣ) ҷудо кунед.
14) Қоидаҳои гео/мундариҷа
Маҳдудиятҳои литсензионӣ: рад кардани гео-канор, ҷойгузинҳо ба ҷои бастани пайдоиш.
Баннерҳои синну солӣ/танзимкунанда - дар канор гузошта мешаванд (кэши шкаларо надиҳед).
15) Анти-намунаҳо
'no-cache, no-store' for тамоми сайт → аз даст додани таъсири CDN.
'Сарлавҳаҳои ноустувори Vary' on (масалан, 'User-Agent') → кардинализм.
Тамоми кэшро дар ҳар як озодкунӣ тоза кунед.
TTL-ҳои кӯтоҳ бидуни SWR → тӯфон ба пайдоиш.
Саҳифаҳои шахсӣ бе сегментатсия/калидҳои нишона нигоҳ дошта мешаванд.
Набудани сипари пайдоиш → якчанд пазмонҳои параллелӣ.
16) Рӯйхати санҷиши амалисозӣ (0-45 рӯз)
0-10 рӯз
Гурӯҳбандии захираҳо: тағйирнопазир/HTML/API.
Фаъол кардани gzip/br, HTTP/2/3, нормализатсияи дархост, 'Суррогат-Калид'.
SWR/IFE ва тозакунии пойгоҳро ворид кунед.
11-25 рӯз
Оптимизатсияи Edge-image (андоза/формат), сипари пайдоиш.
URL-ҳои имзошуда барои васоити ахбори хусусӣ, профилҳои WAF/DD.
Панели панелҳо: таносуби хит, пайдоиши пайдоиш, p95 аз ҷониби POP.
26-45 рӯз
Стратегияи Multi-CDN ё GSLB, вазнҳои канарӣ дар периметр.
Ҳисобкунии канорӣ барои сегментатсия/AB/geo, тозакунии нарм аз рӯи калидҳо.
Интегратсияи худкор гарм ва тоза дар CI/CD.
17) Нишондиҳандаҳои камолот
Таносуби байт 85% барои статикӣ, 60% барои динамикаи HTML/шартӣ.
Пайдоиши RPS дар қуллаҳо устувор аст ("тӯфон" нест).
p95 TTFB дар минтақаҳои калон 30% кам карда шуд.
% вокунишҳои кӯҳна барои ҳодисаҳо> 90% (корбар ба пуррагӣ пай намебарад).
Автоматикунонии пурраи калидҳои тозакунӣ дар қубурҳои озодкунӣ.
18) Хулоса
Силсилаи самараноки CDN калидҳо/TTL/опсияҳо, интизоми маъюбӣ ва мантиқи канорӣ мебошад. SWR/IFE, сипари пайдоиш, оптимизатсияи ВАО ва амнияти қавӣ илова кунед (WAF, URL-ҳои имзошуда). Андозагириро стандартӣ кунед ва тозакуниро ба CI/CD ворид кунед - ва шумо периметри зуд, сарфакорона ва устуворро мегиред, ки барои бори қуллаҳо ва аққалҳои сиёҳ омодаанд.