אופטימיזציה של צמצום CDN
1) מטרות ומפת עיכוב
Latency = DNS + TCP/TLS + TTFB (שרת/מקור/מטמון) + העברת תוכן (RTT × כרכים) + הפעלת הלקוח.
אופטימיזציה = להפחית את מספר ה RTTs, להפחית את bytes, ולהעביר חישוב/מטמון קרוב יותר למשתמש.
2) ארכיטקטורת CDN
כל אחד מהם הוא צומת ניתוב של BGP.
מזומנים/מגן מקורות - שכבת ביניים ”מטריה” שמפחיתה את החמצת הסערה על המקור.
ניתוב גיאו/אזורי - כבילה של דייר/סמכות שיפוט (ריבונות מידע, רישיונות).
כשל - מקור גיבוי/אזור, דגימות בריאות ומתג מהיר.
3) מטמון: מפתחות, כותרות, אסטרטגיות
3. מקש מטמון 1
ברירת המחדל היא ערכת + מארח + נתיב +? שאילתה '.
הוסף רק את הפרמטרים שאתה רוצה ('? V = ”,”? lang = ','? דייר = '). השאר נמצאים בפארמות התעלמות.
'שונה' - מינימלי: 'קבל-קידוד', 'קבל-שפה' (אם יש צורך), 'אישור' שובר את המטמון.
3. 2 מדיניות
סטטיקה ציבורית: 'Cache-Control: Public, max-age = 31536000, imputable' + rev (חשיש בשם).
חצי דינמיקה (ספריות, חוקים, FAQ): 's-maxage = 300, מעופש-בזמן-ביטול = 600, מעופש-אם-שגיאה = 86400.
API-GET: השתמש Etag/Last-Modified, 'SWR/SIE', לאפשר קואליציות (בקשה אחת עבור מפתח חם).
פרטי: תגובות אישיות - על ההיקף באמצעות חישוב קצה (ESI/kv) או מטמון לכל דייר.
3. 3 נגד סערה
בקשה להתמזגות - התמוטטות בו זמנית לפספס בקשות.
לתת חפץ מיושן כאשר המקור נכשל.
חידוש הרקע - עדכון ברקע.
4) HTTP/2-3, TCP/TLS וחזרה מוקדמת
HTTP/2: מולטיפלקס, כיווץ כותרת; גבול 'max current זרמים', כותרות גדולות.
HTTP/3 (QUIC): ירידה משמעותית בהפסד הנייד/גבוה TTFB; לפקוח עין על ראשוני-מפלים ו Retry.
TLS 1. 3: 1-RTT לחיצת יד; הידוק OCSP; HSTS.
0-RTT: רק עבור 'גט' אידיאמפוטנטי ואם נשקלים סיכונים בהילוך חוזר.
103 רמזים מוקדמים: 'קישור מוקדם: rel = טעינה מראש' עבור משאבים קריטיים.
preconnect/DNS-prefetch: ”<link rel =” preconnect ”href =” https ://cdn. דוגמה ”>”.
5) חישוב קצה ו ”האנשה עדינה”
על הקצה: מפקד אוכלוסין, קיבעון גיאו/דייר, סימון A/B, אנושיות קלה בלי לבקש מוצא.
חוק: אל תאחסן מח "ש בקשרי פופ; מטמון מטמון/נתונים ציבוריים בלבד.
6) אופטימיזציה של אמצעי התקשורת והפורמטים
תמונות: המרה אוטומטית ל ־ WebP/AVIF, שינוי גודל על הקצה, 'srcset/dies', 'lazyload'.
דחיסה: Brotli לטקסטים (HTML/CSS/JSON), gzip fallback.
וידאו: HLS/DASH, CDN-Fort Capting, ”prepload = metadata”, פוסטר.
גופנים: תת-קבוצה + 'פונט-תצוגה: החלפה'; מארח עם מטמון ארוך.
Critical CSS: inline first screen; השאר הוא async.
7) דפוסי API ומזומנים
Idempotent GET - אנו מטמון על ידי מפתחות בקשה (כולל גרסת נתונים).
מטען חזק של חשיש + ”אם אין התאמה”.
פונדקאית-בקרה (CDN-ספציפית) כדי להבדיל מלקוח המטמון-בקרה.
כתובות חתומות עבור פרטי סטטי/מדיה.
GraphQL: לנרמל את מטמון המפתח על ידי פעולה/משתנים; תשתמש במטמון מטמון חלקי.
שקעי רשת: עבור הודעות קצרות בזמן אמת, דחוס (permessage-deflate), מיקום רסיסי WS קרוב יותר למשתמש.
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, מתמזגים, מתעלמים מעוגיות)
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 Cooldflare (כללי שינוי צורה, כללי מטמון, רמזים מוקדמים - Early Rights)
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 + critical CSS <14 KB).
עדיפות H2/H3: Priorize (HTML # CSS # JS ach media מאוחר יותר).
מדיניות מגש עם ג 'יטר, אידמפוטנטיות עבור API.
תקציבי גודל וחבילות: פיצול קוד, דחיית JS, הסרת CSS/JS לא בשימוש.
10) יכולת תצפית ו ־ SLO
רום: TTFB, LCP, INP, CLS לפי אזור/ASN/דיירים; הפצות p95/p99.
סינתטיים: מסלול בקרה ”/בריאות/cdn ”על ידי POP-s.
מדדי מטמון: יחס להיט כולל ומפתח; שיעור השגת מוצא; איסוף חסכונות.
התראות: ירידה ביחס להיט, עלייה במוצא היציאה, ירידה H3-fraction, 5xx למגן.
11) פרטים של iGaming/Finance
קטלוגים/סיכויים: קיצור 's-maxage' + SWR; Area-Adversion cultide ('der' region 'lang').
פסגות אירוע (גפרורים, ציורים): חימום מטמון (טרום חם), ”הקפאה” של אישים כבדים, מקורות מראה.
תשלום/ארון: לא מטמון פרטי, אלא להאיץ דרך H3 + Edge-TLS ואזור סגור.
תחום שיפוט: פיצול תחומים/נתיבים לכל אזור; 'Vary: X-Region' control.
12) תרופות אנטי ־ פטריות
”שונה:” על הכל; מפתח המטמון תלוי בעוגיות/כותרות מיותרות.
מחסור במסכי SWR/SIE = מסכים שחורים לכשלונות מקור קצרים.
נקה מטמון ”בכל מקום” במקום נכות נקודתית על ידי תגיות/מפתחות.
משאבים ללא שינוי שמות ועם ”מקסימום גיל = 0”.
מכחיש-מטמון גלובלי ל 'אישור' אפילו איפה הציבור ניתן.
חוסר התאגדות = סערה על המקור.
אנושיות ”כבדה” מוקדמת מדי על פופ.
13) רשימת מוכנות תומכת
[ ] Anycast POP + משויך/מגן; בדיקות בריאות וכישלונות מקור.
[ ] מפתחות מטמון הם מינימליים; להתעלם משאלות/עוגיות מיותרות; פונדקאית-בקרה.
[ ] SWR/SIE מאופשר, מתמזג פעיל; מעופש על שגיאות.
[ ] HTTP/3 מופעל; TLS 1. 3; 103 רמזים מוקדמים מוגדרים למשאבים קריטיים.
[ ] תמונות: AVIF/WebP, שינוי גודל על הקצה; ברוטלי למילים.
[ ] API-GET FESTAG/Last-Modified; אידמפוטנטיות/נסיגה; לא מטמון פרופילים פרטיים.
[ ] קדימות לתחומים סטטיים; CSS קריטי בפנים.
[ ] Metrics: פגע-יחס, מוצא-יציאה, TTFB/LCP p95, H3-share, על ידי אזור/דייר.
[ ] מטמון תכנית חימום לפני האירועים; נכות נקודתית (תגיות).
[ ] Vary/Keys/TTL; ספר של תקריות (ירידה ביחס להיט).
14) TL; DR
המשך לטייל למקור מינימלי: מגן/מגן + מקש-מטמון נכון + SWR/SIE + פחם. תדליק את HTTP/3/TLS 1. 3, השתמש 103 רמזים מוקדמים וקשר מראש. לדחוס ולהמיר מדיה בקצה, infline CSS קריטי. עבור API-ETAG, מסודר ”Vary”, אידמפוטנטיות ו ”CAPING GET” סביר. מדידת יחס הלהיט, TTFB/LCP p95, יציאת המקור וחימום המטמון מראש בפסגות.