GH GambleHub

CDN و بهینه سازی کاهش تاخیر

1) اهداف و نقشه تاخیر

تاخیر = DNS + TCP/TLS + TTFB (سرور/مبدا/کش) + تحویل محتوا (حجم × RTT) + رندر مشتری.
بهینه سازی = کاهش تعداد RTTs، کاهش بایت، و حرکت محاسبات/کش نزدیک به کاربر.

2) معماری CDN

Anycast POPs یک گره مسیریابی BGP نزدیک است.
Tiered caching/Origin Shield - یک لایه متوسط «چتر» است که طوفان خانم را در مبدا کاهش می دهد.
Geo-/مسیریابی منطقه ای - اتصال مستاجر/صلاحیت (حاکمیت داده ها، مجوزها).
شکست - منبع پشتیبان/منطقه، نمونه های بهداشتی و سوئیچ سریع.

3) کش: کلید، هدر، استراتژی

3. 1 کلیدهای کش

به طور پیش فرض "scheme + host + path +? پرس و جو.
فقط پارامترهایی را که میخواهید اضافه کنید) ؟ v = '،' ؟ لانگ = '،' ؟ مستاجر = '). بقیه در نادیده گرفتن پارامس هستند.
'Vary' - minimal: 'Accept-Encoding', 'Accept-Language' (در صورت لزوم), 'Authorization' معمولا کش را میشکند.

3. 2 سیاست ها

استاتیک عمومی: 'Cache-Control: عمومی، حداکثر سن = 31536000، تغییر ناپذیر' + rev (هش در نام).
نیمه دینامیک (دایرکتوری ها، قوانین، سوالات متداول): 's-maxage = 300، stale-while-revalidate = 600، stale-if-error = 86400'.
API-GET: از ETag/Last-Modified، 'SWR/SIE' استفاده کنید، coalescing را فعال کنید (یک درخواست برای یک کلید داغ).
خصوصی: پاسخ های شخصی - در محیط از طریق لبه محاسبه (ESI/kv) یا حافظه پنهان هر مستاجر.

3. 3 ضد طوفان

درخواست coalescing - سقوط به طور همزمان درخواست خانم.
Serve-stale - یک شی قدیمی را زمانی که منبع نتواند انجام دهد.
تأیید مجدد پس زمینه - به روز رسانی در پس زمینه.

4) HTTP/2-3، TCP/TLS و بازگشت زود هنگام

HTTP/2: چندگانه، فشرده سازی هدر ؛ limit 'جریانهای همزمان max'، هدر های بزرگ.
HTTP/3 (QUIC): کاهش عمده در TTFB تلفن همراه/از دست دادن بالا ؛ نگاهی به رپیدهای اولیه و Retry داشته باشید.

TLS 1. 3: دست دادن 1-RTT ؛ مهر و موم OCSP ؛ HSTS ها

0-RTT: فقط برای «GET» idemotent و اگر خطرات پخش در نظر گرفته شود.
103 نکات اولیه: اوایل 'لینک: rel = preload' برای منابع بحرانی.
Preconnect/DNS-prefetch: '<link rel = "preconnect" href = "https ://cdn. مثال «>».

5) لبه محاسبه و «شخصی سازی خوب»

در لبه: سرشماری عنوان، تثبیت جغرافیایی/مستاجر، علامت A/B، شخصی سازی آسان بدون درخواست منشاء.
قانون: PII را در گره های POP ذخیره نکنید ؛ cache فقط داده های عمومی را جمع آوری می کند.

6) بهینه سازی رسانه ها و فرمت ها

تصاویر: تبدیل خودکار به WebP/AVIF، تغییر اندازه بر روی لبه، «srcset/اندازه»، «lazyload».
فشرده سازی: Brotli برای متون (HTML/CSS/JS/JSON)، gzip برگشت.
ویدئو: HLS/DASH، ذخیره سازی بخش CDN، preload = metadata، پوستر.
فونت ها: زیر مجموعه + 'font-display: swap'; میزبان با کش طولانی.
CSS بحرانی: صفحه اول درون خطی ؛ بقیه اش async است.

7) الگوهای API و ذخیره سازی

GET Idempotent - ما با کلید های درخواست (از جمله نسخه داده) ذخیره می کنیم.
ETag: هش بار قوی + 'If-None-Match'.
کنترل جایگزین (CDN-specific) برای تشخیص از مشتری «Cache-Control».
URL های امضا شده - برای خصوصی استاتیک/رسانه ها.
GraphQL: عادی سازی حافظه پنهان کلید توسط عملیات/متغیرها ؛ استفاده از ذخیره سازی جزئی/حل کش.
WebSockets: برای زمان واقعی - کوتاه کردن پیام ها، فشرده سازی (نفوذ پذیری)، موقعیت WS-shards نزدیک به کاربر.

8) نمونه های پیکربندی

8. 1 NGINX (مبدا: ما API-GET را ذخیره می کنیم)

nginx
We give SWR and ETag location/api/v1/catalog/{
proxy_cache api_cache;
proxy_cache_key "$scheme$request_method$host$uri$is_args$args";
proxy_cache_valid 200 5m;
proxy_cache_use_stale updating error timeout http_500 http_502 http_503 http_504;
add_header Cache-Control "public, s-maxage=300, stale-while-revalidate=600, stale-if-error=86400";
add_header ETag $upstream_http_etag;
proxy_ignore_headers Set-Cookie; # do not break the Set-Cookie proxy_hide_header cache;
proxy_pass http://catalog;
}

8. 2 Fastly VCL (SWR، coalescing، نادیده گرفتن کوکی ها)

vcl sub vcl_recv {
set req. hash_ignore_busy = true;   # coalescing if (req. url. qs ~ "^(?!.(lang    v)=)") { remove req. url. qs; }
if (req. http. Cookie) { remove req. http. Cookie; }
}

sub vcl_backend_response {
set beresp. ttl = 300s;
set beresp. stale_if_error = 86400s;
set beresp. stale_while_revalidate = 600s;
if (beresp. http. Set-Cookie) { unset beresp. http. Set-Cookie; }
}

8. 3 Cloudflare (قوانین تبدیل, قوانین کش, نکات اولیه - псевдо)

json
{
"cache_rule": {
"if": "http. request. uri. path matches \"/assets/.\"",
"action": {"cache": {"eligibility":"eligible", "ttl": 31536000}}
},
"transform_rule": {
"set_headers": [{"name":"Cache-Control","value":"public, s-maxage=300, stale-while-revalidate=600"}]
},
"early_hints": {"enable": true}
}

9) شبکه های تلفن همراه و اینترنت «ناپایدار»

استفاده از HTTP/3 به صورت تهاجمی کاهش اندازه مسیر بحرانی (HTML + CSS بحرانی <14 KB).
H2/H3 اولویت: اولویت بندی (HTML → CSS → JS → رسانه بعد).
سیاست Retray با jitter، idempotency برای API.
اندازه بودجه و بسته بندی: تقسیم کد، JS معوق، حذف CSS/JS استفاده نشده.

10) قابلیت مشاهده و SLO

رم: TTFB، LCP، INP، CLS بر اساس منطقه/ASN/مستاجران ؛ توزیع p95/p99

Synthetics: مسیر کنترل «/health/cdn «توسط POP-s.

معیارهای کش: نسبت ضربه به طور کلی و در هر کلید ؛ مبدا نرخ واکشی ؛ جمع آوری پس انداز

هشدارها: افت نسبت ضربه، افزایش مبدأ خروج، تخریب H3-fraction، 5xx در هر سپر.

11) ویژگی های iGaming/امور مالی

کاتالوگ بازی/شانس: کوتاه 's-maxage' + SWR ؛ region-aware ключ ('tenant' region 'lang').
قله رویداد (مسابقات، تساوی): گرم شدن کش (پیش گرم)، «انجماد» شخصی سازی های سنگین، منابع آینه.
پرداخت/کابینه: خصوصی را ذخیره نکنید، اما از طریق H3 + edge-TLS و منطقه نزدیک سرعت بخشید.
حوزه های قضایی: تقسیم دامنه/مسیر در هر منطقه ؛ 'Vary: X-Region' کنترل.

12) ضد گلوله

در مورد همه چیز: کلید کش به کوکی ها/هدر های غیر ضروری بستگی دارد.
فقدان SWR/SIE → صفحه نمایش سیاه و سفید برای شکست های کوتاه مدت.
پاک کردن کش «همه جا» به جای نقطه ناتوانی توسط برچسب ها/کلید.
منابع بدون بازبینی نام و با 'max-age = 0'.
Global deny-cache برای «Authorization» حتی در جایی که public داده شده است.
عدم همبستگی → طوفان در مبدا.
شخصی سازی «سنگین» زودرس در POP.

13) تولید لیست آمادگی

  • Anycast POP + لایه/سپر ؛ بررسی سلامت و شکست منشاء.
  • کلیدهای کش حداقل هستند ؛ نادیده گرفتن نمایش داده شد غیر ضروری/کوکی ها; «کنترل جانشین».
  • SWR/SIE فعال، coalescing فعال ؛ خدمت به اشتباهات.
  • HTTP/3 فعال شود ؛ TLS 1. 3; 103 نکات اولیه برای منابع بحرانی پیکربندی شده است.
  • تصاویر: AVIF/WebP، تغییر اندازه در لبه ؛ بروتلی برای شعر
  • API-GET с ETag/آخرین اصلاح ؛ idempotency/عقب نشینی ؛ پروفایل های خصوصی را پنهان نکنید.
  • قبل از اتصال به دامنه های استاتیک ؛ CSS انتقادی درون خطی.
  • معیارها: نسبت ضربه، مبدأ خروج، TTFB/LCP p95، H3-share، بر اساس منطقه/مستاجر.
  • کش برنامه گرم کردن قبل از حوادث ؛ ناتوانی نقطه (برچسب ها).
  • متفاوت/کلید/اسناد TTL ؛ playbook of incidents (افت نسبت ضربه).

14) TL ؛ دکتر متخصص

پیاده روی را به حداقل برسانید: لایه ای/سپر + کلیدهای کش مناسب + SWR/SIE + coalescing. HTTP/3/TLS 1 را روشن کنید. 3، از 103 نکات اولیه و پیش فرض استفاده کنید. فشرده سازی و تبدیل رسانه ها در لبه، درون خطی CSS بحرانی. برای API - ETag، شسته و رفته 'Vary'، idempotency و ذخیره سازی معقول 'GET'. اندازه گیری نسبت ضربه، TTFB/LCP p95، خروج از مبدا و گرم کردن کش در پیش در قله.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.