GH GambleHub

CDN кэшкунӣ ва оптимизатсияи TTL

Хулосаи мухтасар

Кэши CDN "суръатбахш + сипар" байни корбар ва пайдоиш мебошад. Ин хуб кор мекунад, вақте:

1. Калиди кэш устувор аст ва "садо" надорад.

2. Сиёсати TTL дар зери сарборӣ: 's-maxage '/' max-age' + 'кӯҳна-ҳангоми афзоиш/агар-хато'.

3. Маъюбӣ идора карда мешавад: бо барчаспҳо/префиксҳо + тозакунии "мулоим".

4. Сатҳи кэш/пайдоиши сипар ва манфӣ-кэш дохил карда шудаанд.

5. Мушоҳидаҳо мавҷуданд: таносуби зарба аз қабатҳои, p95 TTFB, ҳиссаи бозгашт 304.

Сарлавҳаҳои асосӣ ва чӣ маъно доранд

'Назорати кэш':
  • 'max-age = ' - TTL барои браузер.
  • 's-maxage = '- TTL барои CDN/proxy (такрори' max-age ').
  • 'кӯҳна-дар ҳоле-revalidate = ' - ба таври мувозӣ кӯҳна, навсозӣ кунед.
  • 'кӯҳна-агар-хато = ' - вақте ки хатогии пайдоиш пайдо мешавад, мо кӯҳнаи худро бармегардонем.
  • 'тағйирнопазир' - манбаъ тағир намеёбад (барои дороиҳои санҷидашуда мувофиқ аст).
  • 'ET' ag '/' Last-Modified '- шартҳо барои 304, сарфа кардани байтҳо/пайдоиши CPU.
  • 'Vary' - рӯйхати сарлавҳаҳое, ки ба калиди кэш таъсир мерасонанд (истифода бо маҳдудият!).
  • 'Surrogate-Control' - "васеъ" Кэш-Назорат барои CDN (агар дастгирӣ шавад).
  • 'Мӯҳлат ба охир мерасад' - кӯҳна шудааст, аммо ба ҳар ҳол аз ҷониби муштариён ҳисоб карда мешавад.
Намуна (статика, сол):

Cache-Control: public, max-age=31536000, immutable
Мисол (нимтайёр бо фарсудашавии бехатар):

Cache-Control: public, s-maxage=300, max-age=60, stale-while-revalidate=600, stale-if-error=86400
ETag: "a1c3..."

Тарҳрезии калиди кэш ва муқаррарӣ

Ҳадаф аз он иборат аст, ки аслан ҳамон дархостҳо ба як объект афтанд.

Нормализатсияи URL: парванда, зарбаҳои дукарата, хати ҳаракат, тартиби параметрҳои дархост.
"Ғавғо" -ро нодида гиред: 'utm _',' fbclid ',' gclid ', барчаспҳои ихтиёрии ref.
Vary Limited: танҳо унвонҳои воқеан муҳим ('Қабул-Рамзгузорӣ', баъзан 'Қабул', 'Қабули забон' for).
Синфи дастгоҳ: дар ҳолати зарурӣ, 2-3 синфро (мобилӣ/мизи корӣ/планшет) истифода баред, на филиалҳои беохири истифодабаранда-агент.
Контексти Auth: бо нобаёнӣ махфӣ нигоҳ надоред; истифодаи URL/cookies-bypass ё роҳҳои алоҳидаи давлатӣ/хусусӣ.

Услуби босуръат (псевдо):

Surrogate-Key: product:123 catalog
Cache-Control: public, s-maxage=300, stale-while-revalidate=600
Vary: Accept-Encoding

Стратегияҳои TTL аз рӯи навъи мундариҷа

НамудиTTL CDN ('s-maxage')Браузер ('синну сол')Илова бар ин
Дороиҳои санҷидашуда ('/барнома. a1b2 нест. js ')1 сол1 сол'тағйирнопазир'; маъюбӣ лозим нест
Каталогҳо/саҳифаҳои фуруд1-10 дақ30-120 с'кӯҳна-дар ҳоле-revalidate = 10-30 дақиқа'
Тасвирҳо (дубора)10-60 дақ5-15 дақVary po 'Қабул' (webp/avif)
API-ҳоро гиред (cached)10-120 с0-30 сТанҳо Idempotent; 'кӯҳна-агар-хато' 5-60 дақиқа
Хатогиҳои 500/вақт00Манфӣ-кэш 30-120 сония (дар сатҳи CDN), кэш накунед 401/403/POST

Сиёсати маъюбӣ

Бо URL/Префикс: "ҳама чизро зери '/статикӣ/2025-11-05/' тоза кунед".
Бо Tag/Key: "ҳама 'каталог' ва 'маҳсулот: 123' -ро хориҷ кунед".
Тозакунии нарм: ҳамчун кӯҳна ишора кунед, объектро тоза накунед - тезтар пур кардан.
Рӯйдодҳо: CI/CD ё ҳодисаи маъмурӣ webhook-ро "барчаспҳои беэътибор" мекунад.

Тавсия: ҳарду тактикаро муттаҳид кунед: роҳҳои таҳвил барои дороиҳо + тозакунии барчасбҳо барои мундариҷа/саҳифаҳо.

Сатҳи кэш, пайдоиш-сипари пеш аз ҷанг

Сатҳи кэш: қабатҳои минтақавии CDN → дархостҳои камтар аз пайдоиш.
Пайдоиши сипар: як "сипар" POP ба пайдоиш - маҳал ва таносуби хитро беҳтар мекунад.
Prewarm (пеш аз овардан): Пеш аз ҳодиса/озодшавӣ URL/caches гарм кунед.
Кэши манфӣ: кэш 5xx/Timeout дар муддати кӯтоҳ (30-120 с), то ки пайдоиши худро бо тӯфони ретрас бартараф накунад.

Кэши API: Вақте ки шумо метавонед

Танҳо GET/HEAD ва idempotent.
Калид: роҳ + дархостҳои асосӣ (масалан, '? категорияи =... & саҳифа =... ').
Санҷиш: 'ET' ag '/' Last-Modified 'ва кӯтоҳ' s-maxage '.
Филтрҳо аз ҷониби корбар: фардикунониро ба функсияи муштарӣ/канорӣ биёред ё дархостҳои имзошуда + посухи "оммавӣ" -ро истифода баред.

Мисол (API, 30 s + SWR):

Cache-Control: public, s-maxage=30, max-age=5, stale-while-revalidate=120, stale-if-error=600
ETag: "feed-v42"

Муҳофизати заҳролудшавӣ аз кэш

Нормализатсияи URL/сарлавҳа; whitelist параметрҳо дар калид.
Буридани сарлавҳаҳои/нусхаҳои шубҳанок ('X-Forwarded-', васеъшудаи 'Қабул').
'Vary' -ро маҳдуд кунед ва андоза/шумораи сарлавҳаҳоро назорат кунед.
Ҷудосозии домейн: хусусӣ/админ - бо номи алоҳида бе кэш.
Тасдиқи ҷавобҳо: кэш 4xx (ба истиснои 404 барои статикӣ), саҳифаҳои "корбар" -ро бидуни сиёсати возеҳ пинҳон накунед.

Фишурдасозӣ ва форматҳо

Brotli барои матн (js/css/json), gzip - афтиш; дороиҳои қаблан фишурдашуда қобили қабуланд.
Тасвирҳо: webp/avif дар куҷо дастгирӣ; истифодаи 'Vary: Қабул' + ҳосилаҳои.
Дархостҳои диапазон барои видео/аудио: CDN caches chunks.
Муҳтаво-гуфтушунид: Кардинализатсияи калидиро паст нигоҳ доред (ба ҷои UA-и хом синфи дастгоҳ).

Мушоҳида ва SLO

Ченакҳои асосӣ

Таносуби хит (бо байтҳо/дархостҳо) на канор/сатҳ/сипар.
p50/95/99 TTFB аз рӯи минтақа ва намуд (статикӣ/API).
Сатҳи пуркунӣ/пайдоиши пайдоиш - чӣ қадар ба пайдоиш меравад.
304 дараҷа ва андозаи миёнаи посух.
Буҷаи хатогӣ: ҳиссаи масъалаҳои 'кӯҳна-агар-хато '/' SWR'; басомади тозакунӣ.

Намунаҳои SLO

'p95 TTFB' статикӣ дар минтақа ≤ 120-150 мс, API GET ≤ 200-250 мс.
Статикаи хит-таносуби Edge ≥ 90%, нимпайкараҳо ≥ 60%.
Фоизи ҷавобҳо аз шохаи кӯҳна бо хатогиҳои ≤ 0. 5% дар 30 рӯз.

Варақаҳои фиребро конфигуратсия кунед

Nginx (баръакс-прокси пеш аз CDN ё дар PO-P)

nginx proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=CDN:512m max_size=100g inactive=7d;

map $args $clean_args {
"~(^    &)(utm_    gclid    fbclid) """; # default $ args simplified example;
}

server {
listen 443 ssl http2;
set $cache_key "$scheme$request_method$host$uri?$clean_args    $http_accept    $http_accept_encoding";
location /static/ {
proxy_cache CDN;
proxy_cache_key $cache_key;
proxy_ignore_headers Set-Cookie;
add_header Cache-Control "public, s-maxage=86400, max-age=3600, stale-while-revalidate=600" always;
proxy_pass https://origin_static;
}

location /api/public/ {
proxy_cache CDN;
proxy_cache_key $cache_key;
proxy_cache_valid 200 30s;
add_header Cache-Control "public, s-maxage=30, max-age=5, stale-while-revalidate=120, stale-if-error=600" always;
proxy_set_header If-None-Match $upstream_http_etag;
proxy_pass https://origin_api;
}
}

Фиристанда (SWR + манфӣ-кэш, консепсия)

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. cache. simple_http_cache. v3. SimpleHttpCacheConfig
Cache-Control/Surrogate-Control Header Cache Policies
We cache 5xx errors briefly via route/retry policy + local_rate_limit

Сарлавҳаҳо барои дороиҳои "зуд"


Cache-Control: public, max-age=31536000, immutable
ETag: "hash"
Content-Encoding: br

Сарлавҳаҳо барои баромадкунандагон (каталогҳо)


Cache-Control: public, s-maxage=600, max-age=120, stale-while-revalidate=1800, stale-if-error=86400
Vary: Accept-Encoding, Accept

Финҳо: Чӣ гуна пули нақд пулро сарфа мекунад

Пайдоиши Egress ↓, CPU/DB камтар хароҷот барои инфрасохтор.
Дархостҳои камтар барои пуштибонии пардохтшуда (ҷустуҷӯ/индекс/тасвирҳо).
Метрикаи мақсаднок: $/кам шудани p95 ва $/кам шудани egress то 1 ГБ - таъсири пас аз оғозро пайгирӣ кунед.

IGaming/fintech мушаххас

Каталогҳои провайдерҳо/дороиҳо: роҳҳои санҷидашуда + TTL солона.
Фурудгоҳҳои чорабинӣ/мусобиқа: 1-5 дақиқа 's-maxage' + 'SWR' барои 10-30 дақиқа; барчасп-тозакунӣ дар навсозӣ.
Саҳифаҳои Liv (коэффисиентҳо/ҷадвалҳо): кэши қисман блокҳои JSON, TTL кӯтоҳ (5-30 с), барои блокҳои шахсӣ - пешниҳоди муштариён.
Нуқтаҳои ниҳоии PSP/пардохт: кэш накунед, қатъии 'мағоза'; Кэш танҳо китобҳои истинодӣ (ҷадвалҳои BIN, статусҳо).
Антибот: кэши статикӣ/GET, хатсайрҳои хокистарӣ барои ASN-ҳои шубҳанок; "Вары" -ро аз сарлавҳаҳои пурғавғо нигоҳ доред.

Рӯйхати назоратии татбиқ

  • Калиди кэш тавсиф карда шудааст: нормализатсияи URL, рӯйхати дархостҳои иҷозатдодашуда, 'Vary' танҳо барои дархости дилхоҳ.
  • Роҳҳои давлатӣ/хусусӣ ҷудо; хусусӣ - 'мағоза нест' ва гузариши CDN.
  • Зинаҳои TTL аз рӯи навъи мундариҷа; танзимшудаи 'SWR/if-хато'.
  • сатҳ-кэш + сипари пайдоиш танзим карда шудааст; манфӣ-кэш 5xx (кӯтоҳ) фаъол аст.
  • Тозакунии барчасп/URL, тозакунии мулоим мавҷуд аст; ҳамгироӣ бо CI/CD.
  • фишурдасозӣ (br/gzip), форматҳои тасвири веб ва посухҳои диапазонро дар бар мегирад.
  • Нишондиҳандаҳо: таносуби хит аз рӯи қабат, p95 TTFB, 304 дараҷа, пайдоиши пайдоиш; огоҳӣ дар бораи нокомӣ.
  • Китобҳои бозӣ: гарм кардани кэш пеш аз қуллаҳо, тозакунии ҳолати фавқулодда, таназзули пайдоиш.

Хатогиҳои умумӣ

Дороиҳои ғайридавлатӣ бо бастаҳои калони TTL → "часпанда" аз корбарон.
Аз ҳад зиёд 'Vary' (аз ҷониби 'User-Agent', ҳама сарлавҳаҳо) → таркиши кардинализм ва таносуби пасти хит.
Caching 4xx/401/403/мундариҷаи хусусӣ.
Набудани кэши манфӣ → тармаи дархостҳо барои пайдоиши таназзулёфта.
Не тозакунии барчасп → тозакунии нуқтаи азим ва пур кардани тӯфон.
Калиди кэш параметрҳои "ғавғо" UTM/ref -ро дар бар мегирад.
TTL хеле кӯтоҳ барои статика → бори иловагӣ ба CDN ва пайдоиши.

Китобҳои бозикунии хурд

1) Пеш аз ҳодиса кэшро гарм кунед

1. Ҷамъоварии URL-ҳои Top-N аз рӯи гузоришҳо → 2) Префетчҳои параллелӣ (меъёри маҳдуд) аз рӯи минтақа → 3) Санҷиши таносуби hit ва p95 ↓.

2) Катологҳои нарм-тоза дар ҳолатҳои фавқулодда

1. Ирсоли 'PURGE '/tag-clear → 2) CDN кӯҳна ва тару тоза бо пасзаминаи → 3) Санҷед, ки хӯшае аз пайдоиш нест.

3) Нокомии пайдоиш

1. 'stale-if-if-хато' ба X соат → 2 кӯмак мекунад) Баннерро "кори техникӣ" дар канори → 3) Ҳангоми барқароршавӣ - гармкунии мақсаднок.

Натиҷа

Стратегияи пурқуввати CDN = калиди дурусти кэш + TTL-и пурмазмун бо SWR/if-хато + маъюбии идорашаванда + дараҷа/сипар + мушоҳида. Сиёсатро дар сарлавҳаҳо ва IA ислоҳ кунед, таносуби хит ва p95-ро чен кунед, ба нақша гиред, ки ба қуллаҳо гарм шавед - ва корбарон ҳамеша ҷавоби зуд мегиранд ва пайдоиш ҳатто дар соатҳои гармтарин зинда хоҳад монд.

Contact

Тамос гиред

Барои саволҳо е дастгирӣ ба мо муроҷиат кунед.Мо ҳамеша омодаем!

Telegram
@Gamble_GC
Оғози интегратсия

Email — муҳим аст. Telegram е WhatsApp — ихтиерӣ.

Номи шумо ихтиерӣ
Email ихтиерӣ
Мавзӯъ ихтиерӣ
Паем ихтиерӣ
Telegram ихтиерӣ
@
Агар Telegram нависед — ҷавобро ҳамон ҷо низ мегиред.
WhatsApp ихтиерӣ
Формат: рамзи кишвар + рақам (масалан, +992XXXXXXXXX).

Бо фиристодани форма шумо ба коркарди маълумот розӣ ҳастед.