GH GambleHub

חישובי CDN ו ־ TTL

תקציר

מטמון CDN הוא ”מגן + מאיץ” בין המשתמש למקור. זה עובד טוב כאשר:

1. מפתח המטמון יציב ולא מכיל ”רעש”.

2. מדיניות TTL תחת עומס: ”S-maxage ”/” max-age” + ”stale-with-explace/if-aview”.

3. נכות מנוהלת: על ידי תגיות/קדימות + טיהור ”רך”.

4. מטמון-מטמון/מגן-מוצא ומטמון שלילי כלולים.

5. ישנה יכולת תצפית: יחס פגיעה בשכבות, p95 TFB, נתח חזרה 304.

כותרות בסיס ומה הם מתכוונים

”מטמון-שליטה”:
  • 'max-age = ' - TTL לדפדפן.
  • מקס = '- TTL עבור CDN/proxy (חפיפה' max-age ').
  • ”מעופש בזמן-לבטל = ” - לתת את מיושן, עדכון במקביל.
  • 'מעופש-אם-טעות' <'s> '- אנחנו חוזרים אחד מיושן כאשר טעות המקור מתרחשת.
  • ”בלתי ניתן לשינוי” - המשאב אינו משתנה (מתאים לנכסים ממולאים).
  • 'ETag '/' Last-Modified' - תנאים עבור 304, לשמור בייטים/מקור מעבד.
  • ”שונה” - רשימה של כותרות שמשפיעות על מפתח המטמון (שימוש באיפוק!).
  • 'פונדקאית-בקרה' - ”מורחבת” מטמון-בקרה עבור 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: מקרה, חתכים כפולים, לוכד נגרר, סדר של פרמטרים שאילתה.
התעלם מ "רעש": "אום _'," fbclid', "gclid', תגי שופט שרירותיים.
Limited vary: רק כותרות משמעותיות (”קבלה-קידוד”, לפעמים ”קבל”, ”קבל-שפה” עבור locale).
התקן-class: אם יש צורך, השתמש ב ־ 2-3 מחלקות (ניידת/שולחן עבודה/טאבלט), ולא אינסוף סניפים של סוכן משתמש.
הקשר Auth: לא מטמון פרטי כברירת מחדל; שימוש בכתובות חתומות/עוגיות-מעקף או נתיבים ציבוריים/פרטיים נפרדים.

סגנון קפדני (פסאודו):

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

אסטרטגיות TTL לפי סוג תוכן

הקלדTTL CDN (”s-maxage”)דפדפן (”max-age”)בנוסף לכך
נכסים מבוססים ('/אפליקציה. a1b2. js')השנה 1השנה 1”בלתי ניתן לשינוי”; נכות לא נחוצה
קטלוגים/עמודי נחיתה1-10 דקות30-120 ש "ח'מעופש-בזמן-לבטל = 10-30 - &ft
תמונות (מחדש)10-60 דקות5-15 דקותשינוי ”קבל” (webp/avif)
GET APIs (מטמון)10-120 אס0-30 אסאידמפוטנט בלבד; ”מעופש-אם-טעות” 5-60 דקות
500/שגיאות פסק זמן00מטמון שלילי 30-120 שניות (ברמת CDN), לא מטמון 401/403/POST

מדיניות נכות

על ידי URL/Prefix: ”לטאטא הכל תחת '/סטטי/2025-11-05/”.
על ידי תגית/מפתח: ”הסר את כל 'קטלוג' ו 'מוצר: 123'”.
טיהור רך: סמן כמיושן, אל תמחק את האובייקט - מילוי מהיר יותר.
מונע אירועים: CI/CD או Odmin אירוע מפעיל webhook ”תגיות חסרות תוקף”.

המלצה: לשלב את שתי הטקטיקות: הסבת נתיבים עבור נכסים + תג-טיהור עבור תוכן/עמודים.

tiered-cache, מקור-מגן preprewm

שכבות אזוריות CDN = פחות בקשות מקור.
מגן המקור: ”מגן” אחד פופ למקור - משפר את המקום והיחס להיט.
PREWARM (קדם הבאה): לחמם כתובות/מטמונים חמים לפני אירוע/שחרור.
מטמון שלילי: מטמון 5xx/Timeout לזמן קצר (30-120 ש "ח) כדי לא להכריע את המוצא עם סופת רטראס.

כאשר אתה יכול

רק גט/ראש ואידימפוטנט.
מפתח: מסלול + שאילתות חיוניות (לדוגמה, '? קטגוריה = & page = "...).
אימות: 'ETag '/' Last-Modified' ו- 'short' 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/כותרת קשה; לבן של פרמטרים במפתח.
חיתוך כותרות חשודות/שכפולים (”X-Forwarded”, מורחב ”קבל”).
הגבלת ”Vary” ולשלוט בגודל/מספר הכותרות.
הפרדת דומיין: פרטי/מנהל - בשם נפרד ללא מטמון.
אימות תגובות: אל תטמון 4xx (למעט 404 עבור סטטי), אל תטמון דפי משתמש ללא מדיניות מפורשת.

דחיסה ופורמטים

ברוטלי לטקסט (js/css/json), gzip - fallback; נכסים דחוסים מקובלים.
תמונות: webp/avif שבו תמיכה; השתמש ב- vary: קבל "+ נגזרות.
טווח בקשות לווידאו/אודיו: CDN caches chunks.
תוכן-משא ומתן: שמור את הקרדינליות של המפתח נמוכה (מכשיר-מחלקה במקום UAs גולמי).

תצפית ו SLO

מטריצות מפתח

Hit-ratio (על ידי בייטים/בקשות) heartheend/tier/shield.
P50/95/99 TFB לפי אזור וסוג (סטטי/API).
יציאת מלוא קצב/מקורות - כמה הולך למקור.
שיעור 304 וגודל תגובה ממוצע.
תקציב שגיאה: שיתוף של בעיות ”מעופש-אם-שגיאה ”/” SWR”; תדר הטיהור.

דוגמאות SLO

'P95 TFBstatics באופן זמני 120-150 ms, API GET Cared 200-250 ms.
אדג 'פגע ביחס סטטי 90%, חצי רמקולים 60%.
אחוז התגובות מהענף המעופש עם שגיאות הקיימות ב-0. 5% בימים 30.

גיליונות רמאות קונפיג

Nginx (הפוך-פרוקסי לפני CDN או ב-PoP עצמי)

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 Origin, פחות CPU/DB Loame # עלויות תשתית נמוכות יותר.
פחות בקשות לתשלום (חיפוש/אינדקס/תמונות).
יעד מטרי: $/ירידה ב-p95 ו-$/ירידה ביציאה ב-1 GB - לעקוב אחר אפקט שלאחר השיגור.

iGaming/fintech ספציפי

קטלוגים/נכסים של ספקים: מסלולים מבוססים + TTL שנתי.
נחיתת אירוע/טורניר: 1-5 min 's-maxage' + 'SWR' עבור 10-30 דקות; טיהור-תג על שדרוג.
עמודי LIV (מקדמים/טבלאות): מטמון חלקי של בלוקים JSON, TTL קצר (5-30 s), עבור בלוקים אישיים - הפקת לקוח.
נקודות קצה של התשלום: אל תטמון, 'אין חנות' קפדנית; ספרי עיון בלבד (שולחנות סל, סטטוסים).
אנטיוט: static/GET Capting, מסלולים אפורים עבור ASNs חשוד; שמור 'Vary' מתוך כותרות רועשות.

רשימת יישומים

[ מפתח מטמון ] תיאר: נורמליזציה כתובות, רשימה של שאילתות מותרות, 'Vary' רק עבור הרצוי.
[ ] נתיבים ציבוריים/פרטיים מופרדים; פרטי - 'אין חנות' ולעקוף CDN.
[ ] סולמות TTL לפי סוג התוכן שהוצג; הגדרת SWR/אם-טעות.
[ ] מטמון-מטמון + מגן מקור; מטמון שלילי 5xx (קצר) מופעל.
[ ] קיים טיהור תג/כתובת, טיהור רך; אינטגרציה עם CI/CD.
[ ] כולל דחיסה (br/gzip), תבניות תמונות רשת ותגובות לטווח.
[ ] Metrics: פגיעה ביחס שכבה, P95 TFB, קצב 304, יציאת מוצא; התראות לכישלונות.
[ ] ספרי משחקים: חימום מטמון לפני פסגות, טיהור חירום, הידרדרות המקור.

שגיאות נפוצות

non-versio נכסים עם TTL גדול = ”דביק” חבילות ממשתמשים.
”Vary” (על ידי ”User-Agent”, כל הכותרות) = פיצוץ של קרדינליות ויחס להיט נמוך.
מזמין 4xx/401/403/תוכן פרטי.
מחסור במטמון שלילי = מפולת של בקשות למקור מושפל.
אין טיהור-תג = ניקוד מסיבי טיהור וסערה מחדש למלא.
מפתח המטמון כולל פרמטרים ”רועשים” UTM/Ref.
TTL קצר מדי עבור סטטיקה = עומס נוסף על CDN ומקורו.

ספרי משחקים מיני

1) לחמם את המטמון לפני האירוע

1. איסוף כתובות Top-N על ידי logs # 2) prefetch מקבילית (קצב מוגבל) על ידי region-limited # 3) בדוק את היחס להיט ו-p95.

2) קטולוגים רכים לטיהור חירום

1. שלח ”טיהור ”/tag-clear = 2) CDN נותן מעופש ומושך את טרי עם הרקע = 3) בדוק אין קוצים במקור.

3) כשל במקור

1. 'מעופש-אם-טעות' עוזר X שעות # 2) אפשר לבאנר ”עבודה טכנית” על הקצה # 3) עם התאוששות - חימום המטרה.

תוצאות

אסטרטגיית CDN חזקה = מפתח מטמון נכון + TTL בעל משמעות עם SWR/if-שגיאה + מנוהלת נכות + מוגבלת/מגן + תצפית. לתקן את המדיניות בכותרות ו-IC, למדוד את יחס הפגיעות ו-p95, לתכנן להתחמם לשיאים - והמשתמשים תמיד יקבלו תשובה מהירה, והמקור יישאר בחיים אפילו בשעה החמה ביותר.

Contact

צרו קשר

פנו אלינו בכל שאלה או צורך בתמיכה.אנחנו תמיד כאן כדי לעזור.

Telegram
@Gamble_GC
התחלת אינטגרציה

Email הוא חובה. Telegram או WhatsApp — אופציונליים.

השם שלכם לא חובה
Email לא חובה
נושא לא חובה
הודעה לא חובה
Telegram לא חובה
@
אם תציינו Telegram — נענה גם שם, בנוסף ל-Email.
WhatsApp לא חובה
פורמט: קידומת מדינה ומספר (לדוגמה, +972XXXXXXXXX).

בלחיצה על הכפתור אתם מסכימים לעיבוד הנתונים שלכם.