במדריך הזה מוסבר איך להגדיר מיפוי של כתובות URL. Google Cloud
מפת URL היא קבוצה של כללים לניתוב בקשות HTTP(S) נכנסות לשירותי קצה עורפי ספציפיים או לקטגוריות קצה עורפי.
מפת URL מינימלית תואמת לכל הנתיבים של הבקשות הנכנסות (/*).
לפני שממשיכים במדריך הזה, כדאי להכיר את המושגים שקשורים למפות URL.
אתם צריכים.נעשה שימוש במיפוי כתובות URL במוצרים הבאים: Google Cloud
מיפוי של כתובות URL שמשמשות עם מאזני עומסים גלובליים חיצוניים של אפליקציות, מאזני עומסים אזוריים חיצוניים של אפליקציות, מאזני עומסים פנימיים של אפליקציות ו-Cloud Service Mesh תומכים גם בכמה תכונות מתקדמות לניהול תנועה. מידע נוסף זמין במאמר מושגים שקשורים למפת URL: ניהול מתקדם של תנועת גולשים.
ברירות מחדל של מפת URL
למיפוי כתובות URL יש שתי הגדרות ברירת מחדל, כפי שמתואר בטבלה הבאה.
| סוג ברירת המחדל | הגדרה | משמעות |
|---|---|---|
| ברירת מחדל של מפת URL | gcloud compute url-maps create
|
שירות ברירת המחדל של שירות הקצה העורפי או קטגוריית קצה עורפי שצוינו ישמשו אם אף אחד מהכללים להתאמת נתיבים או מהכללים של המארח לא יתאים לכתובת ה-URL הנכנסת. |
| ברירת מחדל של התאמת נתיבים | gcloud compute url-maps add-path-matcher
|
שירות הקצה העורפי שצוין כברירת מחדל או קטגוריית הקצה העורפי שצוינה כברירת מחדל משמשים אם הנתיב של כתובת ה-URL תואם למתאים הנתיבים, אבל אף אחד מהנתיבים שצוינו ב---path-rules לא תואם. |
כללים למארחים
כלל מארח מגדיר קבוצה של מארחים שבהם המערכת תחפש התאמות לבקשות.
בכלל מארח, שם המארח חייב להיות שם דומיין שמוגדר במלואו (FQDN). שם המארח לא יכול להיות כתובת IPv4 או IPv6. לדוגמה:
- עבודות:
example.com - עבודות:
web.example.com - עבודות:
*.example.com - לא עובד:
35.244.221.250
הגדרת מיפוי כתובות URL
מפת URL יכולה לשלוח תנועה אל שירותי קצה עורפי או אל מאגרי קצה עורפי. אין תמיכה בקטגוריות בק-אנד במאזני עומסים חיצוניים אזוריים של אפליקציות ובמאזני עומסים פנימיים של אפליקציות.
המסוף
כדי להוסיף מפת URL באמצעות מסוף Google Cloud :
- נכנסים לדף איזון עומסים.
- לוחצים על Name (שם) של מאזן עומסים.
- בדף Load Balancer Details (פרטי מאזן העומסים), לוחצים על Edit (עריכה) ליד מאזן העומסים הרצוי.
- בוחרים באפשרות כללים של מארח ונתיב.
- לוחצים על הוספת כלל של מארח ונתיב.
ממלאים את השדה מארח, את השדה נתיבים או את שניהם, ובוחרים שירות לקצה העורפי או קטגוריית קצה עורפי.
- מזינים שם מארח מוגדר במלואו, לדוגמה
web.example.com. - מזינים את הנתיב, לדוגמה,
/video. - בדף Host and path rules, בתפריט Backends, בוחרים שירות לקצה העורפי או קטגוריית קצה עורפי.
- מזינים שם מארח מוגדר במלואו, לדוגמה
חפשו את סימן הווי הכחול שמשמאל לכללים לגבי מארח ונתיב ולחצו על הלחצן עדכון.
gcloud
כדי להוסיף מפת URL באמצעות Google Cloud CLI, משתמשים בפקודה url-maps create:
gcloud compute url-maps create URL_MAP_NAME \ (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE) \ [--description DESCRIPTION] \ [--global | --region=REGION]
כשיוצרים מפת URL למאזני עומסים חיצוניים אזוריים של אפליקציות (ALB) ולמאזני עומסים פנימיים של אפליקציות (ALB), חשוב להוסיף את הדגל --region.
כדי ליצור התאמה לנתיב, משתמשים בפקודה gcloud compute url-maps add-path-matcher:
gcloud compute url-maps add-path-matcher URL_MAP_NAME \ (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE) \ --path-matcher-name PATH_MATCHER \ [--path-rules="PATH=SERVICE or BUCKET"]
הפקודה הזו דורשת שירות לקצה העורפי או קטגוריית קצה עורפי שאליו אפשר לשלוח בקשות שלא תואמות לכלל. הדגל --path-rules מגדיר מיפויים בין נתיבי בקשות לבין שירותים לקצה העורפי או מאגרי מידע. בדוגמה הבאה, נתיבי הבקשות /video/ ו-/video/* מנותבים לשירות לקצה העורפי video-service:
--path-rules="/video=video-service,/video/*=video-service"
כדי ליצור כלל מארח, משתמשים בפקודה gcloud compute url-maps add-host-rule:
gcloud compute url-maps add-host-rule URL_MAP_NAME \
--hosts=[HOSTS] --path-matcher-name=PATH_MATCHER
לדוגמה, הערך --hosts תואם לבקשות שמופנות אל www.example.com ולכל תת-דומיין של altostrat.com:
--hosts=[*.altostrat.com,www.example.com]
כדי לשנות את שירות ברירת המחדל או את דלי ברירת המחדל של מפת URL, משתמשים בפקודה url-maps set-default-service:
gcloud compute url-maps set-default-service URL_MAP_NAME (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE)[GCLOUD_WIDE_FLAG ...]
Terraform
כדי ליצור מפת URL גלובלית, משתמשים במשאב google_compute_url_map.
כדי ליצור מפת URL אזורית, משתמשים במשאב google_compute_region_url_map.
אימות ההגדרה של מפת URL
לפני שפורסים מפת URL, חשוב לוודא שהגדרת מפת ה-URL תקינה, כדי שהמפה תנתב את הבקשות לשרתי הקצה העורפיים המתאימים כמו שרציתם. כדי לעשות את זה, מוסיפים בדיקות להגדרת מפת ה-URL. אתם יכולים להתנסות בכללים שונים של מפת URL ולהריץ כמה בדיקות שצריך כדי לוודא שהמפה תנתב את התנועה בצורה מתאימה כשהיא תיפרס. בנוסף, אם יהיה צורך לשנות כלל כלשהו בעתיד, תוכלו לבדוק את השינויים האלה לפני שתפעילו את ההגדרה החדשה.
משתמשים בפקודה gcloud compute url-maps
validate כדי לאמת את ההגדרה של מפת URL. הפקודה הזו בודקת רק את ההגדרה שצוינה.
לא משנה אם הבדיקות עוברות או נכשלות, לא נשמרים שינויים במפת ה-URL שפרסתם. התנהגות זו שונה מפקודות אחרות של מפת URL (edit, import), שמריצות גם הן את אותן הבדיקות, אבל שומרות את ההגדרה החדשה אם הבדיקות עוברות. כדי לבדוק הגדרת ניתוב חדשה בלי לבצע שינויים במפת URL שפרסתם, משתמשים בפקודה validate.
הפקודה validate מאפשרת לבדוק הגדרות מתקדמות של מסלולי תנועה, כמו
ניתוב שמבוסס על כותרות ופרמטרים של שאילתות, הפניות אוטומטיות מ-HTTP ל-HTTPS ושכתוב של כתובות URL.
המסוף
אי אפשר להשתמש במסוף Google Cloud כדי לאמת את ההגדרה של מפת URL.
במקום זאת, אפשר להשתמש ב-gcloud או ב-API בארכיטקטורת REST.
gcloud
כדי לאמת את ההגדרה של מפת URL, משתמשים בפקודה gcloud compute url-maps validate.
למאזן עומסים גלובלי חיצוני של אפליקציות (ALB):
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE \
--load-balancing-scheme=EXTERNAL_MANAGED \
--global
במאזן עומסים קלאסי של אפליקציות (ALB):
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE \
--load-balancing-scheme=EXTERNAL \
--global
- PATH_TO_URL_MAP_CONFIG_FILE: מחליפים את הערך בנתיב לקובץ שמכיל את ההגדרה של מפת URL לצורך אימות.
אימות שינויים במפת URL של מאזן עומסים קיים
אם יש לכם מאזן עומסים קיים שצריך לבצע בו שינויים במפת ה-URL, תוכלו לבדוק את שינויי ההגדרות האלה לפני שתפעילו אותם.
מייצאים את מפת URL הקיימת של מאזן העומסים לקובץ YAML.
gcloud compute url-maps export URL_MAP_NAME \ --destination PATH_TO_URL_MAP_CONFIG_FILE \ --global
עורכים את קובץ ה-YAML עם ההגדרות החדשות. לדוגמה, אם רוצים לערוך מאזן עומסים חיצוני של אפליקציות ולשלוח את כל הבקשות עם הנתיב
/videoלשירות חדש לקצה העורפי שנקראvideo-backend-service, אפשר להוסיף בדיקות להגדרת מפת URL באופן הבא:הגדרת מפת URL קיימת עם
web-backend-serviceאחת שמוגדרת כברירת מחדל:kind: compute#urlMap name: URL_MAP_NAME defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service
הגדרת מפת URL שערכתי עם התאמת נתיבים נוספת ובדיקות גם ל-
web-backend-serviceשמוגדר כברירת מחדל וגם לשירות לקצה העורפי החדשvideo-backend-service:kind: compute#urlMap name: URL_MAP_NAME defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service hostRules: - hosts: - '*' pathMatcher: pathmap pathMatchers: - defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service name: pathmap pathRules: - paths: - /video - /video/* service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/video-backend-service tests: - description: Test routing to existing web service host: foobar path: / service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service - description: Test routing to new video service host: foobar path: /video service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/video-backend-serviceמאמתים את ההגדרה החדשה.
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE
אם כל הבדיקות עוברות בהצלחה, תוצג הודעת הצלחה כמו:
Successfully validated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_CONFIG_FILE_NAME]
אם הבדיקות נכשלות, מופיעה הודעת שגיאה. בצע את התיקונים הנדרשים בקובץ התצורה של מפת ה-URL ונסה לאמת שוב.
Error: Invalid value for field 'urlMap.tests': ''. Test failure: Expect URL 'HOST/PATH' to map to service 'EXPECTED_BACKEND_SERVICE', but actually mapped to 'ACTUAL_BACKEND_SERVICE'.
אחרי שמוודאים שההגדרה החדשה פועלת ולא משפיעה על ההגדרה הקיימת, אפשר לייבא אותה למפת ה-URL. שימו לב שהשלב הזה כולל גם פריסה של מפת URL עם ההגדרה החדשה.
gcloud compute url-maps import URL_MAP_NAME \ --source PATH_TO_URL_MAP_CONFIG_FILE \ --global
הוספת בדיקות למפת URL
אתם יכולים להוסיף בדיקות הגדרה למפת URL כדי לוודא שמפת ה-URL מעבירה בקשות לשירותי קצה עורפי או לקטגוריות קצה עורפי כמו שרציתם.
בקטע הזה מוסבר איך להוסיף בדיקות למפת URL שכבר נפרסה. אם רוצים לבדוק שינויים חדשים במפת URL בלי לפרוס את המפה בפועל, אפשר לעיין במאמר בנושא אימות ההגדרה של מפת URL.
כשעורכים את מפת ה-URL, הבדיקות מופעלות, ואם בדיקה נכשלת מוצגת הודעת שגיאה:
Error: Invalid value for field 'urlMap.tests': ''. Test failure: Expect URL 'HOST/PATH' to map to service 'EXPECTED_BACKEND_SERVICE', but actually mapped to 'ACTUAL_BACKEND_SERVICE'.
הוספת בדיקות למיפוי כתובות URL היא אופציונלית.
המסוף
כדי להריץ בדיקות ממסוף Google Cloud :
- נכנסים לדף איזון עומסים.
- לוחצים על Name (שם) של מאזן עומסים.
- בדף Load Balancer Details (פרטי מאזן העומסים), לוחצים על Edit (עריכה) ליד מאזן העומסים שנבחר.
- לוחצים על כללי ניתוב. במאזן עומסים קלאסי של אפליקציות (ALB), אלה כללי מארח ונתיב.
- לוחצים על הצגת בדיקות ההגדרה.
- לוחצים על הוספת בדיקת הגדרה. מוסיפים את כתובות ה-URL ואת השרתים העורפיים הבאים לבדיקה:
- Test host and path 1
example.comו-Backendwww-service. - מארח ונתיב לבדיקה 2
example.netוקצה עורפיwww-service. - מארח ונתיב לבדיקה 3
example.net/webוקצה עורפיwww-service. - מארח ונתיב לבדיקה 4
example.com/videosוקצה עורפיvideo-service. - מארח ונתיב לבדיקה 5
example.com/videos/browseוקצה עורפיvideo-service. - מארח ונתיב לבדיקה 6
example.net/staticוקצה עורפיstatic-service. - מארח ונתיב לבדיקה 7
example.net/static/imagesוקצה עורפיstatic-service.
- Test host and path 1
- חפשו את סימן ה-V הכחול שמימין לכללי ניתוב ולחצו על הלחצן עדכון. במאזן עומסים של אפליקציות (ALB) קלאסי, מחפשים את סימן הוי הכחול לצד Host and path rules.
gcloud
כדי להוסיף בדיקות למיפוי כתובות ה-URL באמצעות Google Cloud CLI, משתמשים בפקודה gcloud compute url-maps edit:
gcloud compute url-maps edit URL_MAP_NAME
ייפתח כלי לעריכת טקסט. במאזני עומסים חיצוניים של אפליקציות, הבדיקות צריכות להיות בפורמט הבא:
tests:
- host: example.com
service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service
- host: example.net
service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service
- host: example.com
path: /videos
service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/video-service
- host: example.com
path: /videos/browse
service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/video-service
- host: example.net
path: /web
service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service
- host: example.net
path: /static
service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/static-service
- host: example.net
path: /static/images
service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/static-service
שימו לב: אם לא מציינים מארח בכלל מארח, כתובות URL מכל המארחים (גם example.com וגם example.net) יכולות להתאים. אם יש לכם כללים לגבי מארחים, אתם צריכים ליצור כללים שתואמים גם ל-example.com וגם ל-example.net.
הצגת מפות של כתובות URL
המסוף
אי אפשר לראות את כל מיפויי כתובות ה-URL במסוף Google Cloud .
gcloud
כדי להציג רשימה של מיפויי כתובות URL באמצעות Google Cloud CLI, משתמשים בפקודה url-maps list.
gcloud compute url-maps list
קבלת מידע על מפת URL
המסוף
כדי לקבל מידע על מפת URL, פועלים לפי השלבים הבאים:
- נכנסים לדף איזון עומסים.
- לוחצים על Name (שם) של מאזן עומסים.
- בדף Load Balancer Details (פרטי מאזן העומסים), לוחצים על Edit (עריכה) ליד מאזן העומסים שנבחר.
- צפייה בHost and path rules.
gcloud
כדי לקבל מידע על מיפוי URL יחיד באמצעות Google Cloud CLI, משתמשים בפקודה url-maps describe.
gcloud compute url-maps describe URL_MAP_NAME
מחיקת מפת URL
אפשר למחוק מפת URL רק אחרי שמוחקים את כל שרתי היעד הפרוקסי שמפנים אליו. מידע נוסף זמין במאמר בנושא מחיקת שרת proxy ליעד.
המסוף
כדי למחוק מפת URL:
- נכנסים לדף איזון עומסים.
- לוחצים על Name (שם) של מאזן עומסים.
- בדף Load Balancer Details (פרטי מאזן העומסים), לוחצים על Edit (עריכה) ליד מאזן העומסים שנבחר.
- בדף Load Balancer Details (פרטי איזון העומסים), אפשר לראות את Host and path rules (כללי המארח והנתיב).
- כדי למחוק מפת URL, לוחצים על הסמל X משמאל למיפוי. מפת ה-URL נעלמת.
- חפשו את סימן הווי הכחול שמשמאל לכללים לגבי מארח ונתיב ולחצו על הלחצן עדכון.
gcloud
כדי למחוק מפת URL באמצעות Google Cloud CLI, משתמשים בפקודה url-maps delete.
לפני שמוחקים מפת URL, צריך למחוק קודם את כל פרוקסי ה-HTTP של היעד שמפנים למפת ה-URL.
gcloud compute url-maps delete URL_MAP_NAME [--quiet]
מחיקת התאמה לנתיב
המסוף
כדי למחוק כלי להשוואת נתיבים, מבצעים את השלבים הבאים:
- נכנסים לדף איזון עומסים.
- לוחצים על Name (שם) של מאזן עומסים.
- בדף Load Balancer Details (פרטי מאזן העומסים), לוחצים על Edit (עריכה) ליד מאזן העומסים שנבחר.
- בוחרים באפשרות כללים של מארח ונתיב.
- בשדה נתיבים של מפת URL קיימת, לוחצים על הסמל 'X' ליד השם של התאמת הנתיבים.
- חפשו את סימן הווי הכחול שמשמאל לכללים לגבי מארח ונתיב ולחצו על הלחצן עדכון.
gcloud
כדי למחוק כלי להשוואת נתיבים, משתמשים בפקודה gcloud compute url-maps remove-path-matcher:
gcloud compute url-maps remove-path-matcher URL_MAP_NAME \ [--path-matcher-name PATH_MATCHER]
מחיקת כלל מארח
המסוף
כדי למחוק כלל של מארח, מבצעים את השלבים הבאים:
- אם אתם לא נמצאים כבר בדף כללי מארח ונתיב, עוברים לדף איזון עומסים.
- לוחצים על Name (שם) של מאזן עומסים.
- בדף Load Balancer Details (פרטי מאזן העומסים), לוחצים על Edit (עריכה) ליד מאזן העומסים שנבחר.
- בוחרים באפשרות כללים של מארח ונתיב.
- בשדה מארחים של מפת URL קיימת, לוחצים על סמל ה-X ליד שם המארח.
- חפשו את סימן הווי הכחול שמשמאל לכללים לגבי מארח ונתיב ולחצו על הלחצן עדכון.
gcloud
כדי למחוק כלל של מארח ממפת URL, משתמשים בפקודה gcloud compute url-maps remove-host-rule:
gcloud compute url-maps remove-host-rule URL_MAP_NAME --host=HOST
לדוגמה, כדי להסיר כלל מארח שמכיל את המארח altostrat.com ממפת URL בשם my-map, מריצים את הפקודה הבאה:
gcloud compute url-maps remove-host-rule my-map --host altostrat.com
מדריכים לניהול תנועה
לא כל התכונות של מפת URL זמינות לכל המוצרים. מיפוי של כתובות URL משמש עם מאזני עומסים כדי לתמוך בכמה תכונות מתקדמות לניהול תנועה, אבל לא כל התכונות האלה נתמכות בגרסה הקלאסית של מאזן העומסים של אפליקציות (ALB).
בטבלה הבאה מפורטות התכונות של מפת URL לניהול.
| מוצר | תכונות של מפות URL ומדריכים לניהול תנועה |
|---|---|
| מאזן עומסים גלובלי חיצוני של אפליקציות (ALB) | תכונות של איזון עומסים: ניתוב וניהול תנועה
הגדרת הפניה אוטומטית לכתובת URL |
| מאזן עומסים קלאסי של אפליקציות (ALB) | תכונות של איזון עומסים: ניתוב וניהול תנועה
סקירה כללית על ניהול תעבורת נתונים הגדרת הפניה אוטומטית לכתובת URL |
| מאזן עומסים חיצוני אזורי של אפליקציות (ALB) | תכונות של איזון עומסים: ניתוב וניהול תנועה
הגדרת הפניה אוטומטית לכתובת URL |
| מאזן עומסים פנימי של אפליקציות (ALB) | תכונות של איזון עומסים: ניתוב וניהול תנועה
הגדרת הפניות לכתובות URL אחרות |
| Cloud Service Mesh | תכונות של Cloud Service Mesh: ניהול ניתוב ותנועה |
הפניית API ו-CLI של gcloud
בנוסף למסוף Google Cloud , אפשר להשתמש ב-API וב-CLI של gcloud כדי ליצור מפות URL.
API
לתיאורים של המאפיינים והשיטות שזמינים לכם כשאתם עובדים עם מפות URL דרך API בארכיטקטורת REST, אפשר לעיין במאמרים הבאים:
| מוצר | מאמרי העזרה של ה-API |
|---|---|
| מאזן עומסים חיצוני של אפליקציות (ALB) | urlMaps |
| מאזן עומסים פנימי של אפליקציות (ALB) | regionUrlMaps |
| Cloud Service Mesh | urlMaps |
CLI של gcloud
למידע על Google Cloud CLI ב-Google Cloud CLI, אפשר לעיין במאמרים הבאים:
- גלובלי:
--global
- אזורי:
--region=[REGION]
לניהול תנועה מתקדם, משתמשים בקובצי YAML ומייבאים אותם באמצעות הפקודה gcloud compute url-maps import.
המאמרים הבאים
- מידע על אופן הפעולה של מיפוי כתובות URL זמין במאמר סקירה כללית על מיפוי כתובות URL.
- במאמר מאזן עומסים חיצוני של אפליקציות – סקירה כללית מוסבר איך מפות URL פועלות במאזני עומסים חיצוניים של אפליקציות.
- במאמר סקירה כללית על מאזן עומסים פנימי של אפליקציות מוסבר איך מפות URL פועלות במאזני עומסים פנימיים של אפליקציות.