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

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

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

  • מידע על מצבי מטמון ותוכן סטטי

  • מוודאים ש-Cloud CDN מופעל. הוראות מפורטות זמינות במאמר שימוש ב-Cloud CDN.

  • אם צריך, מעדכנים לגרסה האחרונה של Google Cloud CLI:

    gcloud components update
    

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

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

המסוף

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

    לדף Load balancing

  2. לוחצים על השם של מאזן העומסים החיצוני של האפליקציות.
  3. לוחצים על Edit.
  4. בקטע Backend configuration, בוחרים קצה עורפי ולוחצים על Edit (עריכה) .
  5. מוודאים שהאפשרות Enable Cloud CDN (הפעלת Cloud CDN) מסומנת.
  6. בקטע Cache mode (מצב מטמון), בוחרים באחת מהאפשרויות הבאות:
    • שמירת תוכן סטטי במטמון (מומלץ): תוכן סטטי הוא נכסי אינטרנט שלא משתנים עבור כל משתמש. תוכן סטטי מבוסס על Content-Type בתשובה. מידע נוסף מופיע במאמר בנושא תוכן סטטי.
    • שימוש בהגדרות מקור על סמך כותרות Cache-Control: שמירת תגובות במטמון עם הנחיות מטמון תקפות בכותרות התגובה.
    • שמירה של כל התוכן במטמון: שמירה במטמון של כל התוכן שמוצג בהצלחה על ידי המקור, תוך התעלמות מההנחיות 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: נדרש שהמקור יגדיר כותרות תקפות של שמירה במטמון כדי לשמור תוכן במטמון. תגובות בלי הכותרות האלה לא נשמרות במטמון ב-Google Edge, וכל בקשה מחייבת מעבר מלא למקור. זה עלול להשפיע על הביצועים ולהגדיל את העומס על שרת המקור.

  • 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: נדרש שהמקור יגדיר כותרות תקפות של שמירה במטמון כדי לשמור תוכן במטמון. תגובות בלי הכותרות האלה לא נשמרות במטמון ב-Google Edge, וכל בקשה מחייבת מעבר מלא למקור. זה עלול להשפיע על הביצועים ולהגדיל את העומס על שרת המקור.

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