CDN ומזומנים
CDN ו
1) מטרות
CDN (רשת משלוח תוכן) מפחיתה את האחיזה והעומס על המקור: מקלות תוכן סטטי ודינמי מותנה על צמתים, מספקת קנה מידה, יציבות וביטחון (DDOS/WAF), מוסיפה לוגיקת קצה (שכתוב תגובות/בקשות, אימות, A/B).
2) מודל מטמון ומפתחות
Catynament diffactiver = ”scheme + host + path +? (פרמי שאילתה נבחרים) + כותרות (Vary)”
מומלץ:- נרמול שאילתה ("utm _' לכלול, להשאיר 'v', 'lang', 'country', וכו ').
- מזעור ”Vary” (לדוגמה, Vary: קבל-קידוד, קבל-שפה), הימנע מ ”Vary:”.
- עבור API - מפתח ממסלול + גירסה מזהה (semver, hash, build id) + שאילתות/כותרות הכרחיות (לדוגמה, X-Tenant).
- לדפים מותאמים אישית - מקטע קצה (על ידי עוגייה/גיאו) או Skip-Cache.
3) מדיניות וכותרות TTL
כותרות בסיס:- 'Cache-Control: Public, max-age = 300, s-maxage = 3600, מעופש-בזמן-חידוש = 60, מעופש-אם-שגיאה = 300&pos
- פורוגייט-קונטרול (באנגלית: Surrogate-Control) היא מדיניות נפרדת ל-CDNs מלבד הדפדפן.
- בקשות מותנות (304) וחיסכון בתעבורה.
- לפרטי: ”מטמון-שליטה: פרטי, ללא חנות”, אם לא מטמון.
- APIs שמאפשרים מטמון: "Cache-Control: public, s-maxage = 60 '+ grass key.
גישה מומלצת: ”משאבים נצחיים” (עם טביעת אצבע בשם הקובץ) # max-age = 31536000, immutable '; ”PAGES/JSON” = TTL + SWR קצר.
4) נכות: טיהור/טיהור רך
טיהור באמצעות כתובת: מבחינת נקודה.
טיהור על ידי תגית/מפתח: טיהור קבוצתי (השתמש ב ”סורוגייט-מפתח: מוצרים: קטגוריה 42: מזון”).
טיהור רך: מסמן תוכן ”מיושן”, קצה נותן מעופש עד שמתקבלת גרסה חדשה.
”חם” מתחמם: לאחר הפריסה, למשוך את העמודים הראשיים מהאזורים.
5) דפוסי ביצועי קצה
מעופש בזמן מחדש: תגובה מהירה עם ”מיושן” העתק + עדכון רקע.
Prefetch של משאבים קריטיים (pretconnect, dns-prefetch).
דחיסה: gzip/br (עבור טקסט), zstd אם CDN נתמך.
- חידוש הפעלת TLS והידוק OCSP על המתחם.
6) תמונות וסרטונים
אופטימיזציית תמונה בקצה: משא ומתן חדש/פורמט ('קבל: תמונה/אוויף, ווב'), WebP/AVIF, DPR-escription.
מטענים עצלים מגיבים ('srcset', 'גדלים').
וידאו: HLS/DASH, MP4 מקוטע, מקורה-מגן (מטמון מרכזי) כדי להפחית סערות.
שירותי אגודל וכתובות חתומות לתמונות פרטיות.
7) אבטחה היקפית
WAF: חוקי OWASP, חסימת מדינה/ASN, שיעור גבולות עם מפתח (IP + עוגיה + אסימון).
דוס: קרצוף L3/4, דמקה L7, אתגרי JS/סיבוב.
כתובות/עוגיות חתומות עבור משאבים פרטיים (וידאו/דיווחים): TTL + HMAC/EDSA.
גיאו-גידור ותאימות (למשל, איזורים אסורים).
8) אדג '- חישוב (היגיון בקצה)
מקרים:- התאמה אישית ללא שבירת מטמון: מקטעים (A/B), גיאו, שפה על הקצה, ותוכן נפקד.
- משכתב תשובות/כותרות, הפניות, פיצול AB.
- אימות מבוסס טוקן: אימות חתימת JWT, קשירת מפתח.
- קנרית על ידי עוגייה/אחוז: חלק מהתנועה לחלק האחורי החדש.
דוגמאות לטכנולוגיה כוללות: Cloudflare Workers/Stable Objects, Fastly Compute @ Edge, AWS Lambda @ Edge.
9) Multi-CDN והיקף גלובלי
סיבות: סיקור, SLA, עלות, הגבלות אזוריות, בידוד אירועים.
היגוי GSLB/תנועה: על שגיאות geo/latency/really; בדיקות בריאות מנקודות תצפית מרובות.
סכימת מפתח/כותרת יחידה (Sorrogate-Key), כללי טיהור מסונכרנים.
מקור-מגן משותף לכל הCDNs כדי לא ”להכות” מקור עם מוגבלויות.
10) כריתת עצים ומדדים
איסוף:- יחס הלהיט (cache, CDN * edge/origin), יחס הלהיט byte.
- latency p50/p95/p99, שגיאה-קצב על ידי קוד/מסלול.
- משיכות מקור: RPS/Bytes/שגיאות (הגנה מפני החמצות מיותרות).
- תרשימים אזוריים (על ידי POP/ASN/Country).
- אינטגרציה עם Observability: Prometheus (למשוך באמצעות יצואנים), Grafana/Otel (לדחוף מתוך יומני קצה).
11) SEO SSR/SSR
דפי SEO עם SWR ו TTL קצר הם מהירים ורעננים.
מצב/רובוטים - אנחנו מטמון במשך זמן רב, אבל לאפשר טיהור רך.
עובד שירות: מטמון לא מקוון, הטפה של נתיבים קריטיים, עדכונים ממוקדים.
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 עובדי זיקוק ענן - כתובות חתומות
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
לעולם אל תטמון תגובות פרטיות ללא בידוד מפתח (per-user/per-token).
השתמש בעוגיות חתומות/כותרות ו-Vary: אישור 'only עם שליטה קפדנית (אחרת - מטמון-חזה).
חלופה בטוחה: להפריד בין השכבה הציבורית (camed) לבין המכלולים הפרטיים (ESI/edge composition).
14) כללי גיאו/תוכן
הגבלות רישוי: מכחיש גיאו על קצה, בעלי מקומות במקום חסימת מוצא.
כרזות גיל/רגולציה - להפוך על הקצה (לא אגרוף מטמון).
15) אנטי דפוסים
לא-מטמון, לא-חנות עבור האתר כולו = אובדן אפקט CDN.
'Varary' על כותרות לא יציבות (לדוגמה, 'User-Agent') * Cardinality.
נקה את כל המטמון על כל שחרור.
TLs קצר ללא SWR * סערה למקור.
דפים אישיים נקלטים ללא מקשי קטעים/אסימונים.
מחסור במגן מקור = = החמצות מקבילות מרובות.
16) רשימת מימושים (0-45 ימים)
0-10 ימים
קטגוריות משאבים: ללא שינוי/HTML/API.
אפשר gzip/br, HTTP/2/3, נורמליזציה שאילתה, ”Surrogate-Key”.
הזן SWR/IFE וטיהור בסיס.
11-25 ימים
אופטימיזציה של תמונת קצה (resize/format), מגן המקור.
כתובות חתומות לתקשורת פרטית, פרופילי WAF/DDOS.
לוחות מחוונים: יחס להיט, מקורה מגיע, p95 על ידי POP.
26-45 ימים
אסטרטגיית Multi-CDN או GSLB, משקולות קנריות בהיקף.
חישוב קצה לקטע/AB/geo, טיהור רך על ידי מפתחות.
חימום אוטומטי ושילוב טיהור ב CI/CD.
17) מדדי בגרות
יחס הפגיעה של Byte הוא 85% עבור סטטי, 60% עבור דינמיקת HTML/מותנה.
Origin RPS יציב בפסגות (ללא ”סערות”).
P95 TFB הצטמצם ב-30% על פני אזורים מרכזיים.
% מהתגובות המעופשות לתקריות> 90% (המשתמש בקושי שם לב).
אוטומציה מלאה של מפתחות טיהור בצינורות שחרור.
18) מסקנה
מעגל CDN האפקטיבי הוא מפתחות/TTL/אפשרויות, משמעת נכות, ולוגיקת קצה. הוספת SWR/IFE, מגן המקור, אופטימיזציה תקשורתית ואבטחה חזקה (WAF, כתובות חתומות). תקן מדדים ושילב טיהור לתוך CI/CD - ואתה מקבל היקפי מהיר, חסכוני ויציב, מוכן לעומסי שיא וברבורים שחורים.