שינוי מצבי מטמון

בדף הזה מוסבר איך לשנות את מצבי המטמון באמצעות Cloud CDN. מצבי מטמון מאפשרים להגדיר איך Cloud CDN שומר במטמון את התוכן.

לפני שמתחילים

הגדרת מצב המטמון

כדי להגדיר מצבי מטמון עבור קצה עורפי שמופעל בו Cloud CDN:

המסוף

  1. נכנסים לדף Load Balancing במסוף Google Cloud .

    לדף Load balancing

  2. לוחצים על השם של מאזן העומסים החיצוני של האפליקציות.
  3. לוחצים על Edit.
  4. בקטע Backend configuration, בוחרים קצה עורפי ולוחצים על Edit (עריכה) .
  5. מוודאים שהאפשרות Enable Cloud CDN (הפעלת Cloud CDN) מסומנת.
  6. בקטע מצב מטמון, בוחרים באחת מהאפשרויות הבאות:
    • שמירת תוכן סטטי במטמון (מומלץ): תוכן סטטי הוא נכסי אינטרנט שלא משתנים עבור כל משתמש. תוכן סטטי מבוסס על Content-Type בתשובה. מידע נוסף מופיע במאמר בנושא תוכן סטטי.
    • שימוש בהגדרות מקור על סמך כותרות Cache-Control: שמירת תגובות במטמון עם הוראות תקפות למטמון בכותרות התגובה. לפרטים על האופן שבו Cloud CDN מפרש את הכותרות האלה ואת סדר העדיפויות שלהן, ראו סדר העדיפויות של כותרות בקרת מטמון.
    • שמירה של כל התוכן במטמון: שמירת כל התוכן שמוצג על ידי המקור במטמון, תוך התעלמות מההנחיות private או no-store.
  7. לוחצים על Save.

gcloud

בשירותי קצה עורפי, משתמשים בפקודה gcloud compute backend-services create או gcloud compute backend-services update עם הדגל --cache-mode.

בקטגוריות של שרתים עורפיים, משתמשים בפקודה gcloud compute backend-buckets create או gcloud compute backend-buckets update עם הדגל --cache-mode.

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --cache-mode=CACHE_MODE
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --cache-mode=CACHE_MODE

מחליפים את CACHE_MODE באחד מהערכים הבאים:

  • CACHE_ALL_STATIC (ברירת מחדל): שמירת תוכן סטטי במטמון באופן אוטומטי. תגובות שמסומנות ככאלה שלא ניתן לשמור במטמון (הוראות private או no-store בכותרות התגובה Cache-Control) לא נשמרות במטמון. כדי לשמור תוכן דינמי במטמון, התוכן צריך לכלול כותרות תקפות של שמירה במטמון.

  • USE_ORIGIN_HEADERS: נדרש שהמקור יגדיר כותרות תקפות של שמירת נתונים במטמון כדי לשמור תוכן במטמון. תגובות בלי הכותרות האלה לא נשמרות במטמון ב-edge של Google, ודורשות נסיעה מלאה למקור בכל בקשה. זה עלול להשפיע על הביצועים ולהגדיל את העומס על שרת המקור. פרטים על האופן שבו Cloud CDN מפרש את הכותרות האלה ועל סדר העדיפות שלהן מופיעים במאמר סדר העדיפות של כותרות בקרת המטמון.

  • FORCE_CACHE_ALL: שומר במטמון את כל התוכן (כלומר, תגובות מוצלחות), תוך התעלמות מההנחיות private או no-store בכותרות התגובה Cache-Control. הדבר עלול לגרום לשמירת תוכן פרטי במטמון, תוכן שמשתנה לפי המשתמש (ניתן לזיהוי). הפעולה הזו מומלצת רק לשרתי קצה עורפיים שלא מציגים תוכן פרטי או דינמי, כמו קטגוריות של Cloud Storage. אל תפעילו את האפשרות הזו בקצוות עורפיים שמציגים תוכן פרטי או דינמי.

API

לקטגוריות של קצה עורפי, משתמשים בקריאה ל-API ‏Method: backendBuckets.insert או Method: backendBuckets.update.

בשירותי קצה עורפי, משתמשים בקריאה ל-API ‏Method: backendServices.insert או Method: backendServices.update.

משתמשים באחת מהקריאות הבאות ל-API:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE

מוסיפים את הקטע הבא לגוף בקשת ה-JSON:

"cdnPolicy": {
  "cacheMode": (CACHE_ALL_STATIC | USE_ORIGIN_HEADERS | FORCE_CACHE_ALL)

מחליפים את CACHE_MODE באחד מהערכים הבאים:

  • CACHE_ALL_STATIC (ברירת מחדל): המערכת שומרת במטמון באופן אוטומטי תוכן סטטי אם המקור לא מגדיר כותרות תקפות של שמירה במטמון. תגובות שמסומנות ככאלה שלא ניתן לשמור במטמון (הוראות private או no-store בכותרות התגובה Cache-Control) לא נשמרות במטמון. כדי לשמור תוכן דינמי במטמון, התוכן צריך לכלול כותרות תקינות של שמירה במטמון.

  • USE_ORIGIN_HEADERS: נדרש שהמקור יגדיר כותרות תקפות של שמירת תוכן במטמון כדי לשמור תוכן במטמון. תגובות בלי הכותרות האלה לא נשמרות במטמון ב-edge של Google, ודורשות נסיעה מלאה למקור בכל בקשה. זה עלול להשפיע על הביצועים ולהגדיל את העומס על שרת המקור. לפרטים נוספים על האופן שבו Cloud CDN מפרש את הכותרות האלה ועל סדר העדיפות שלהן, אפשר לעיין במאמר סדר העדיפות של כותרות בקרת מטמון.

  • FORCE_CACHE_ALL: שומר במטמון את כל התוכן (כלומר, תגובות מוצלחות), תוך התעלמות מההנחיות private או no-store בכותרות התגובה Cache-Control. הדבר עלול לגרום לשמירת תוכן פרטי במטמון, תוכן שמשתנה לפי המשתמש (ניתן לזיהוי). מומלץ להפעיל את התכונה הזו רק בשרתי קצה עורפיים שלא מציגים תוכן פרטי או דינמי, כמו קטגוריות של Cloud Storage.