יצירת כותרות בהתאמה אישית בשירותי קצה עורפי

בדף הזה מוסבר איך להגדיר כותרות מותאמות אישית בשירותי קצה עורפיים שמשמשים את מאזן העומסים של אפליקציות (ALB) בגרסה הקלאסית.

כותרות מותאמות אישית של בקשות ותגובות מאפשרות לכם לציין כותרות נוספות שמאזן העומסים יכול להוסיף לבקשות ולתגובות של HTTP(S). בהתאם למידע שזוהה על ידי מאזן העומסים, הכותרות האלה יכולות לכלול את המידע הבא:

  • זמן האחזור ללקוח
  • המיקום הגיאוגרפי של כתובת ה-IP של הלקוח
  • פרמטרים של חיבור TLS

כותרות בקשה מותאמות אישית נתמכות בשירותי קצה עורפי, וכותרות תשובה מותאמות אישית נתמכות בשירותי קצה עורפי ובמאגרי קצה עורפי.

מאזן העומסים מוסיף כברירת מחדל כותרות מסוימות לכל בקשות ותשובות HTTP(S) שהוא מעביר בין קצה העורפי לבין הלקוחות. מידע נוסף זמין במאמר בנושא Target proxies.

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

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

    gcloud components update
    

איך פועלות כותרות מותאמות אישית

כותרות מותאמות אישית פועלות באופן הבא:

  • כשמאזן העומסים מעביר בקשה לקצה העורפי, הוא מוסיף כותרות לבקשה.

    מאזן העומסים מוסיף כותרות מותאמות אישית לבקשות רק לבקשות של הלקוח, ולא לבדיקות של תקינות השרת. אם ה-backend שלכם דורש כותרת ספציפית לאישור שחסרה במנת בדיקת תקינות, יכול להיות שבדיקת התקינות תיכשל.

  • מאזן העומסים מגדיר כותרות תגובה לפני שהוא מחזיר את התגובות ללקוח.

כדי להפעיל כותרות מותאמות אישית, מציינים רשימה של כותרות במאפיין של שירות הקצה העורפי או של קטגוריית הקצה העורפי.

כל כותרת מצוינת כמחרוזת header-name:header-value. בכותרת צריך להיות סימן נקודתיים שמפריד בין שם הכותרת לערך הכותרת.

שמות העמודות צריכים לעמוד בדרישות הבאות:

  • שם הכותרת צריך להיות הגדרה תקינה של שם שדה כותרת HTTP (לפי RFC 7230).
  • שם הכותרת לא יכול להיות X-User-IP או CDN-Loop.
  • אסור להשתמש בכותרות הבאות מסוג hop-by-hop:‏ Keep-Alive,‏ Transfer-Encoding,‏ TE,‏ Connection,‏ Trailer ו-Upgrade. בהתאם ל-RFC 2616, הכותרות האלה לא מאוחסנות במטמון ולא מועברות על ידי שרתי ה-proxy של היעד.
  • שם הכותרת לא יכול להתחיל ב-X-Google, X-Goog-, X-GFE או X-Amz-.
  • שם של כותרת לא יכול להופיע יותר מפעם אחת ברשימת הכותרות שנוספו.

ערכי הכותרת צריכים לעמוד בדרישות הבאות:

  • ערך הכותרת צריך להיות הגדרה תקינה של שדה כותרת HTTP לפי RFC 7230, בלי שימוש בפורמטים מיושנים.
  • ערך הכותרת יכול להיות ריק.
  • ערך הכותרת יכול לכלול משתנה אחד או יותר, שמוקפים בסוגריים מסולסלים, ומורחבים לערכים שספק איזון העומסים מספק. מידע נוסף זמין במאמר בנושא משתנים שנתמכים בערכי כותרות.

לכלי שורת הפקודה gcloud יש דגל לציון כותרות של בקשות, והוא --custom-request-header. חשוב להקפיד להקיף את שם הכותרת ואת ערך הכותרת במירכאות ישרות בודדות (') כשמשתמשים בדגל הזה.

הפורמט הכללי של הדגל הוא:

    --custom-request-header='HEADER_NAME:[HEADER_VALUE]'

הדוגמה הבאה מציגה ערך של כותרת עם שני משתנים, client_region ו-client_city, שמוקפים בסוגריים מסולסלים.

    --custom-request-header='X-Client-Geo-Location:{client_region},{client_city}'

עבור לקוחות שממוקמים במאונטיין ויו, קליפורניה, מאזן העומסים מוסיף כותרת באופן הבא:

X-Client-Geo-Location:US,Mountain View

כדי ליצור שירות קצה עורפי עם כותרות מותאמות אישית, ראו הגדרה של כותרות בקשות בהתאמה אישית.

משתנים שנתמכים בערכי כותרות

כדי להוסיף מטא-נתונים דינמיים שספציפיים לבקשה לכותרות המותאמות אישית, אפשר להשתמש במשתנים הבאים. כשמשתנים כאלה מוקפים בסוגריים מסולסלים ({}) בערך של כותרת, מאזן העומסים מרחיב אותם לערכים בזמן אמת, כמו המיקום הגיאוגרפי של הלקוח, פרמטרים של חיבור או סטטוס המטמון, לפני שהוא מעביר את הכותרת לקצה העורפי או ללקוח.

משתנה תיאור
cdn_cache_id קוד המיקום ומזהה מופע הזיכרון למטמון ששימשו להצגת הבקשה. זהו אותו ערך שמאוכלס בשדה jsonPayload.cacheId ביומני הבקשות של Cloud CDN ב-Logging.
cdn_cache_status הסטטוס הנוכחי של המטמון. הערכים יכולים להיות hit,‏ miss,‏ revalidated,‏ stale,‏ uncacheable או disabled לכל אובייקט שמוגש על ידי קצה עורפי שמופעל בו Cloud CDN.
origin_request_header משקף את הערך של הכותרת Origin בבקשה לתרחישי שימוש של שיתוף משאבים בין מקורות (CORS).
client_rtt_msec זמן השידור המשוער של הלוך ושוב בין מאזן העומסים לבין לקוח HTTP(S), באלפיות השנייה. זהו הפרמטר של זמן הלוך ושוב מוחלק (SRTT) שנמדד על ידי מחסנית ה-TCP של מאזן העומסים, בהתאם ל-RFC 2988. ה-RTT המוחלק הוא אלגוריתם שמטפל בשינויים ובאנומליות שיכולים להתרחש במדידות של ה-RTT.
client_region המדינה (או האזור) שמשויכת לכתובת ה-IP של הלקוח. זהו קוד אזור Unicode CLDR, כמו US או FR. (ברוב המדינות, הקודים האלה תואמים ישירות לקודי ISO-3166-2).
client_region_subdivision חלוקת משנה, למשל מחוז או מדינה, של המדינה שמשויכת לכתובת ה-IP של הלקוח. זהו מזהה חלוקת משנה של CLDR ב-Unicode, כמו USCA או CAON. (קודי ה-Unicode האלה נגזרים מחלוקות המשנה שמוגדרות בתקן ISO-3166-2).
client_city שם העיר שממנה הגיעה הבקשה, לדוגמה, Mountain View למאונטיין ויו, קליפורניה. אין רשימה קנונית של ערכים תקינים למשתנה הזה. שמות הערים יכולים להכיל אותיות, מספרים, רווחים ותווים מסוג US-ASCII: !#$%&'*+-.^_`|~.
client_city_lat_long קו הרוחב וקו האורך של העיר שממנה נשלחה הבקשה, לדוגמה, 37.386051,-122.083851 לבקשה שנשלחה ממאונטיין ויו.
client_ip_address כתובת ה-IP של הלקוח. בדרך כלל, זוהי כתובת ה-IP של הלקוח, שהיא הכתובת הלפני האחרונה בכותרת X-Forwarded-For, אלא אם הלקוח משתמש ב-proxy או אם בוצעו שינויים בכותרת X-Forwarded-For.
client_port יציאת המקור של הלקוח.
client_encrypted true אם החיבור בין הלקוח למאזן העומסים מוצפן (באמצעות HTTPS, ‏ HTTP/2 או HTTP/3); אחרת, false.
client_protocol פרוטוקול ה-HTTP שמשמש לתקשורת בין הלקוח לבין מאזן העומסים. אחד מהערכים HTTP/1.0, HTTP/1.1, HTTP/2 או HTTP/3.
device_request_type

המכשיר של הלקוח, שנגזר מערכי הכותרת User-Agent.

אלה הערכים האפשריים: DESKTOP, GAME_CONSOLE, GAME_CONSOLE, MOBILE, SET_TOP_BOX, SMART_SPEAKER, SMART_TV, TABLET, UNDETERMINED, WEARABLE.

server_ip_address כתובת ה-IP של מאזן העומסים שאליו הלקוח מתחבר. האפשרות הזו שימושית כשכמה מאזני עומסים חולקים קצה עורפי משותף. הערך הזה זהה לכתובת ה-IP האחרונה בכותרת X-Forwarded-For.
server_port מספר יציאת היעד שהלקוח מתחבר אליה.
tls_sni_hostname האינדיקציה של שם השרת (כפי שמוגדר ב-RFC 6066), אם הלקוח מספק אותה במהלך לחיצת היד של TLS או QUIC. שם המארח מומר לאותיות קטנות, ומוסרת ממנו נקודה בסוף, אם יש כזו.
tls_version גרסת TLS שנקבעה במשא ומתן בין הלקוח לבין מאזן העומסים במהלך לחיצת היד בפרוטוקול SSL. הערכים האפשריים כוללים: TLSv1, TLSv1.1,‏ TLSv1.2 ו-TLSv1.3. אם הלקוח מתחבר באמצעות QUIC במקום TLS, הערך הוא QUIC.
tls_cipher_suite סט האלגוריתמים להצפנה (cipher suite) שנקבע במהלך לחיצת היד בפרוטוקול TLS. הערך הוא ארבע ספרות הקסדצימליות שמוגדרות במאגר של IANA לסטים של אלגוריתמים להצפנה ב-TLS, למשל, 009C ל-TLS_RSA_WITH_AES_128_GCM_SHA256. הערך הזה ריק עבור QUIC ועבור חיבורי לקוח לא מוצפנים.
tls_ja3_fingerprint JA3 TLS/SSL fingerprint אם הלקוח מתחבר באמצעות HTTPS,‏ HTTP/2 או HTTP/3.
tls_ja4_fingerprint JA4 TLS/SSL fingerprint אם הלקוח מתחבר באמצעות HTTPS,‏ HTTP/2 או HTTP/3.
user_agent_family

סוג הדפדפן של הלקוח, שנגזר מערכי הכותרת User-Agent.

הערכים האפשריים הם: APPLE, APPLEWEBKIT, BLACKBERRY, DOCOMO, GECKO, GOOGLE, KHTML, KOREAN, MICROSOFT, MSIE, NETFRONT, NOKIA, OBIGO, OPERA, OPENWAVE, OTHER, POLARIS, SEMC, SMIT, TELECA, USER_DEFINED.

asn מספר המערכת האוטונומית (ASN) שמשויך לכתובת ה-IP של הלקוח.
cloud_trace_id מזהה המעקב שחולץ (או נוצר) מכותרת בקשת ה-HTTP.
hostname שם המארח המקורי שצוין על ידי הלקוח בHostכותרת בקשת ה-HTTP. הערך מומר לאותיות קטנות, וכל נקודה בסוף הערך מוסרת.

מאזן העומסים מרחיב משתנים למחרוזות ריקות כשהוא לא יכול לקבוע את הערכים שלהם. לדוגמה:

  • משתני מיקום גיאוגרפיים כשהמיקום של כתובת ה-IP לא ידוע
  • פרמטרים של TLS כשלא נעשה שימוש ב-TLS
  • הכותרת {origin_request_header} כשהבקשה לא כוללת כותרת Origin
  • הכותרת {cdn_cache_status} כשכוללים אותה בכותרת הבקשה

ערכים גיאוגרפיים (אזורים, חלוקות משנה וערים) הם אומדנים שמבוססים על כתובת ה-IP של הלקוח. מעת לעת, Google מעדכנת את הנתונים שמספקים את הערכים האלה כדי לשפר את הדיוק שלהם ולשקף שינויים גיאוגרפיים ופוליטיים. גם אם הכותרת המקורית X-Forwarded-For מכילה פרטי מיקום תקינים, Google מעריכה את מיקומי הלקוחות באמצעות פרטי כתובת ה-IP של המקור שכלולים בחבילות שמתקבלות במאזן העומסים.

כותרות שנוספו על ידי מאזן העומסים מחליפות כותרות קיימות עם אותו שם. השמות של הכותרות הם לא תלויי-רישיות. כששמות של כותרות מועברים לשרת קצה עורפי של HTTP/2, הפרוטוקול HTTP/2 מקודד את שמות הכותרות באותיות קטנות.

במקרה של ערכי כותרות, רווחים לבנים בתחילת השורה או בסופה לא משמעותיים ולא מועברים אל ה-Backend. כדי לאפשר שימוש בסוגריים מסולסלים בערכי הכותרת, מאזן העומסים מפרש שני סוגריים מסולסלים פותחים ({{) כסוגר מסולסל פותח יחיד ({), ושני סוגריים מסולסלים סוגרים (}}) כסוגר מסולסל סוגר יחיד (}).

כותרות מותאמות אישית של TLS הדדי

אם מוגדר TLS דו-צדדי (mTLS) ב-TargetHttpsProxy של מאזן העומסים, משתני הכותרת הנוספים הבאים זמינים:

משתנה תיאור
client_cert_present true אם הלקוח סיפק אישור במהלך לחיצת היד של TLS, אחרת false.
client_cert_chain_verified true אם שרשרת אישורי הלקוח מאומתת מול TrustStore שהוגדר; אחרת, false.
client_cert_error מחרוזות מוגדרות מראש שמייצגות את תנאי השגיאה. מידע נוסף על מחרוזות השגיאה זמין במאמר בנושא מצבי אימות של לקוח mTLS.
client_cert_sha256_fingerprint טביעת אצבע מסוג SHA-256 של אישור הלקוח בקידוד Base64.
client_cert_serial_number המספר הסידורי של אישור הלקוח. אם המספר הסידורי ארוך מ-50 בייט, הערך של client_cert_error מוגדר כ-client_cert_serial_number_exceeded_size_limit, והמספר הסידורי מוגדר כמחרוזת ריקה.
client_cert_spiffe_id

SPIFFE ID מהשדה של שם הנושא החלופי (SAN). אם הערך לא תקין או חורג מ-2,048 בייט, מזהה ה-SPIFFE מוגדר כמחרוזת ריקה.

אם מזהה ה-SPIFFE ארוך מ-2,048 בייט, הערך של client_cert_error מוגדר ל-client_cert_spiffe_id_exceeded_size_limit.

client_cert_uri_sans

רשימה מופרדת בפסיקים של תוספי SAN מסוג URI בקידוד Base64. תוספי ה-SAN מחולצים מאישור הלקוח. מזהה ה-SPIFFE לא נכלל בשדה client_cert_uri_sans.

אם הערך של client_cert_uri_sans ארוך מ-512 בייטים, הערך של client_cert_error מוגדר כ-client_cert_uri_sans_exceeded_size_limit, והרשימה המופרדת בפסיקים מוגדרת כמחרוזת ריקה.

client_cert_dnsname_sans

רשימה מופרדת בפסיקים בקידוד Base64 של תוספי ה-SAN מסוג DNSName. תוספי ה-SAN מחולצים מאישור הלקוח.

אם הערך של client_cert_dnsname_sans ארוך מ-512 בייטים, הערך של client_cert_error מוגדר כ-client_cert_dnsname_sans_exceeded_size_limit, והרשימה המופרדת בפסיקים מוגדרת כמחרוזת ריקה.

client_cert_valid_not_before חותמת זמן (בפורמט מחרוזת תאריך RFC 3339) שלפניו אישור הלקוח לא תקף. לדוגמה, 2022-07-01T18:05:09+00:00.
client_cert_valid_not_after חותמת זמן (בפורמט מחרוזת תאריך RFC 3339) שאחריה אישור הלקוח לא תקף. לדוגמה, 2022-07-01T18:05:09+00:00.
client_cert_issuer_dn

קידוד DER בקידוד Base64 של השדה המלא Issuer (מונפק על ידי) מהאישור.

אם האורך של client_cert_issuer_dn הוא יותר מ-512 בייטים, המחרוזת client_cert_issuer_dn_exceeded_size_limit מתווספת ל-client_cert_error, ו-client_cert_issuer_dn מוגדר כמחרוזת ריקה.

client_cert_subject_dn

קידוד DER בקידוד Base64 של השדה Subject המלא מהאישור.

אם המחרוזת client_cert_subject_dn ארוכה מ-512 בייטים, המחרוזת client_cert_subject_dn_exceeded_size_limit מתווספת ל-client_cert_error, והמחרוזת client_cert_subject_dn מוגדרת כמחרוזת ריקה.

client_cert_leaf

אישור העלה של הלקוח לחיבור mTLS שנוצר כשהאישור עבר אימות. הקידוד של האישור תואם לתקן RFC 9440. המשמעות היא שהאישור הבינארי בקידוד DER מקודד באמצעות Base64 ומוגבל באמצעות נקודתיים משני הצדדים.

אם הערך של client_cert_leaf גדול מ-16KB לא מוצפנים, המחרוזת client_cert_validated_leaf_exceeded_size_limit מתווספת ל-client_cert_error, והערך של client_cert_leaf מוגדר כמחרוזת ריקה.

client_cert_chain

רשימת האישורים המופרדת בפסיקים, בסדר TLS רגיל, של שרשרת אישורי הלקוח לחיבור mTLS שנוצר, שבו אישור הלקוח עבר אימות, לא כולל אישור העלה. הקידוד של האישור תואם ל-RFC 9440.

אם הגודל המשולב של client_cert_leaf ושל client_cert_chain לפני קידוד Base64 חורג מ-16KB, המחרוזת client_cert_validated_chain_exceeded_size_limit מתווספת ל-client_cert_error, והערך של client_cert_chain מוגדר כמחרוזת ריקה.

הגדרת כותרות בקשות בהתאמה אישית

המסוף

כדי להוסיף כותרות מותאמות אישית לבקשות לשירות קיים של קצה עורפי:

  1. עוברים לדף הסיכום של איזון העומסים.
    כניסה לדף Load balancing
  2. לוחצים על Backends.
  3. לוחצים על השם של שירות קצה עורפי.
  4. לוחצים על Edit.
  5. לוחצים על הגדרות מתקדמות (העדפת סשן, פסק זמן להפסקת חיבורים, מדיניות אבטחה).
  6. בקטע Custom request headers (כותרות מותאמות אישית של בקשות), לוחצים על Add header (הוספת כותרת).
  7. מזינים את שם הכותרת ואת ערך הכותרת של כותרת הבקשה המותאמת אישית.
  8. מזינים כותרות נוספות של בקשות בהתאמה אישית.
  9. לוחצים על Save.

כדי להסיר כותרת בקשה בהתאמה אישית משירות קצה עורפי:

  1. עוברים לדף הסיכום של איזון העומסים.
    כניסה לדף Load balancing
  2. לוחצים על Backends.
  3. לוחצים על השם של שירות קצה עורפי.
  4. לוחצים על Edit.
  5. לוחצים על הגדרות מתקדמות (העדפת סשן, פסק זמן להפסקת חיבורים, מדיניות אבטחה).
  6. לוחצים על הסמל X לצד השם של כותרת הבקשה המותאמת שרוצים להסיר.
  7. לוחצים על Save.

gcloud

כדי לציין כותרות מותאמות אישית לבקשות, משתמשים בפקודה gcloud compute backend-services create או gcloud compute backend-services update עם הדגל --custom-request-header.

כדי ליצור שירות קצה עורפי עם כותרות בקשה בהתאמה אישית:

gcloud compute backend-services create BACKEND_SERVICE_NAME \
    --global-health-checks \
    --global \
    --protocol HTTPS \
    --health-checks https-basic-check \
    --custom-request-header='HEADER_NAME:[HEADER_VALUE]'

כדי להוסיף עוד כותרות לבקשה, מציינים שם וערך ייחודיים לכותרת על ידי חזרה על האפשרות --custom-request-header.

כדי להוסיף כותרות מותאמות אישית לשירות קיים של קצה עורפי:

gcloud compute backend-services update BACKEND_SERVICE_NAME \
    --global \
    --custom-request-header='HEADER_1_NAME:[HEADER_1_VALUE]' \
    --custom-request-header='HEADER_2_NAME:[HEADER_2_VALUE]'

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

כדי להסיר את כל הכותרות משירות לקצה העורפי:

gcloud compute backend-services update BACKEND_SERVICE_NAME \
    --global \
    --no-custom-request-headers

API

שולחים בקשת PATCH אל ה-method‏ backendServices.patch:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE_NAME
"customRequestHeaders": [
   "client_city:Mountain View"
]

Terraform

סקריפט Terraform ליצירת מאזן עומסים עם כותרות בהתאמה אישית מופיע במאמר דוגמאות ל-Terraform עבור מאזני עומסים גלובליים חיצוניים של אפליקציות.

הגדרת כותרות תגובה מותאמות אישית

המסוף

כדי להוסיף כותרות תגובה בהתאמה אישית לשירות קיים בעורף המערכת:

  1. עוברים לדף הסיכום של איזון העומסים.
    כניסה לדף Load balancing
  2. לוחצים על Backends.
  3. לוחצים על השם של שירות קצה עורפי.
  4. לוחצים על Edit.
  5. לוחצים על הגדרות מתקדמות (העדפת סשן, פסק זמן להפסקת חיבורים, מדיניות אבטחה).
  6. בקטע Custom response headers (כותרות תגובה בהתאמה אישית), לוחצים על Add header (הוספת כותרת).
  7. מזינים את שם הכותרת ואת ערך הכותרת של כותרת התגובה המותאמת אישית.
  8. מזינים כותרות נוספות של תגובות בהתאמה אישית.
  9. לוחצים על Save.

כדי להסיר כותרת תגובה בהתאמה אישית משירות קצה עורפי:

  1. עוברים לדף הסיכום של איזון העומסים.
    כניסה לדף Load balancing
  2. לוחצים על Backends.
  3. לוחצים על השם של שירות קצה עורפי.
  4. לוחצים על Edit.
  5. לוחצים על הגדרות מתקדמות (העדפת סשן, פסק זמן להפסקת חיבורים, מדיניות אבטחה).
  6. לוחצים על הסמל X לצד השם של כותרת התגובה המותאמת אישית שרוצים להסיר.
  7. לוחצים על Save.

gcloud

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

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

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --custom-response-header='HEADER_NAME:[HEADER_VALUE]'
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --custom-response-header='HEADER_NAME:[HEADER_VALUE]'

דוגמה עם כותרת X-Frame-Options:

gcloud compute backend-buckets update gaming-lab \
    --custom-response-header='X-Frame-Options: DENY'

דוגמה עם כותרת Strict-Transport-Security:

בדוגמה הבאה מוצג איך להוסיף כותרת תגובה בהתאמה אישית כדי לתמוך ב-HTTP Strict Transport Security‏ (HSTS):

gcloud compute backend-services update customer-bs-name \
    --global \
    --custom-response-header='Strict-Transport-Security: max-age=63072000'

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_NAME

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_NAME

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

"customResponseHeaders":HEADER_NAME:[HEADER_VALUE]

Terraform

סקריפט Terraform ליצירת מאזן עומסים עם כותרות בהתאמה אישית מופיע במאמר דוגמאות ל-Terraform עבור מאזני עומסים גלובליים חיצוניים של אפליקציות.

הגדרת כותרות תגובה ל-Cloud Storage

אם אתם צריכים להגדיר כותרות HTTP בתגובות מ-Cloud Storage – כמו כותרות של מדיניות משאבים חוצי-מקורות, X-Frame-Options או X-XSS-Protection –Google Cloud מאפשרת להשתמש בכותרות בהתאמה אישית ל-Cloud CDN עם Cloud Storage. כדי לעשות את זה, אפשר להגדיר כותרות בהתאמה אישית ברמת קטגוריית הקצה העורפי של מאזן העומסים, כמו שמתואר בדף הזה.

כותרות תגובה מותאמות אישית שמוגדרות ברמת קטגוריית קצה עורפי מתווספות לתגובות רק אם בקשת הלקוח נשלחת לכתובת ה-IP של מאזן העומסים. כותרות מותאמות אישית לא מתווספות לתשובות אם הבקשה של הלקוח נשלחה ישירות אל Cloud Storage API.

שימוש בכותרות בהתאמה אישית עם Google Cloud Armor

כשמגדירים מדיניות אבטחה של Cloud Armor, אפשר להגדיר את Cloud Armor כך שיכניס כותרת וערך בהתאמה אישית. אם מדיניות האבטחה של Cloud Armor מוגדרת להוספת אותו שם של כותרת בהתאמה אישית כמו הכותרות בהתאמה אישית של מאזן העומסים החיצוני הגלובלי של אפליקציות (ALB) או מאזן העומסים הקלאסי של אפליקציות (ALB), אז הערך של הכותרת שצוין במדיניות האבטחה של Cloud Armor מוחלף בערך שאוכלס על ידי מאזן העומסים. אם לא רוצים שהמדיניות של Cloud Armor תידרס, צריך לוודא שלא משתמשים באותו שם.

מגבלות

המגבלות הבאות חלות על כותרות מותאמות אישית שמשמשות עם מאזני עומסים גלובליים:

  • הגודל הכולל של כל כותרות הבקשה המותאמות אישית (שם וערך משולבים, לפני הרחבת המשתנים) לכל שירות לקצה העורפי לא יכול לחרוג מ-8KB או מ-16 כותרות בקשה.
  • הגודל הכולל של כל כותרות התגובה המותאמות אישית (השם והערך ביחד, לפני הרחבת המשתנים) לכל שירות קצה עורפי לא יכול לחרוג מ-8KB או מ-16 כותרות תגובה.

המאמרים הבאים