במדריך הזה מוסבר איך להגדיר מיפוי של כתובות 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 , פועלים לפי השלבים הבאים:
- נכנסים לדף Load balancing.
- לוחצים על Name (שם) של מאזן העומסים.
- בדף Load Balancer Details (פרטי מאזן העומסים), לוחצים על Edit (עריכה) ליד מאזן העומסים הרצוי.
- בוחרים באפשרות Host and path rules (כללים לגבי מארח ונתיב).
- לוחצים על הוספת כלל של מארח ונתיב.
ממלאים את השדה מארח, את השדה נתיבים או את שניהם, ובוחרים שירות קצה עורפי או מאגר קצה עורפי.
- מזינים שם מארח מוגדר במלואו, לדוגמה
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.
המסוף
אי אפשר להשתמש במסוף כדי לאמת את ההגדרה של מפת URL. Google Cloud
במקום זאת, אפשר להשתמש ב-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 :
- נכנסים לדף Load balancing.
- לוחצים על Name (שם) של מאזן העומסים.
- בדף Load Balancer Details (פרטי מאזן העומסים), לוחצים על Edit (עריכה) ליד מאזן העומסים שנבחר.
- לוחצים על כללי ניתוב. במאזן עומסים קלאסי של אפליקציות (ALB), אלה כללי מארח ונתיב.
- לוחצים על הצגת בדיקות ההגדרה.
- לוחצים על הוספת בדיקת הגדרה. מוסיפים את כתובות ה-URL ואת ה-backends הבאים לבדיקה:
- 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) קלאסי, מחפשים את סימן ה-V הכחול לצד 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, פועלים לפי השלבים הבאים:
- נכנסים לדף Load balancing.
- לוחצים על 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, מבצעים את השלבים הבאים:
- נכנסים לדף Load balancing.
- לוחצים על 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]
מחיקת התאמה לנתיב
המסוף
כדי למחוק כלי להשוואת נתיבים, מבצעים את השלבים הבאים:
- נכנסים לדף Load balancing.
- לוחצים על Name (שם) של מאזן העומסים.
- בדף Load Balancer Details (פרטי מאזן העומסים), לוחצים על Edit (עריכה) ליד מאזן העומסים שנבחר.
- בוחרים באפשרות Host and path rules (כללים לגבי מארח ונתיב).
- בשדה נתיבים של מפת 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 (עריכה) ליד מאזן העומסים שנבחר.
- בוחרים באפשרות Host and path rules (כללים לגבי מארח ונתיב).
- בשדה מארחים של מפת 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 עם מאזני עומסים כדי לתמוך בכמה תכונות מתקדמות לניהול תעבורת נתונים, אבל לא כל התכונות האלה נתמכות בגרסה הקלאסית של מאזן העומסים של האפליקציות.
בטבלה הבאה מפורטות התכונות של מפת 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 במאזני עומסים חיצוניים של אפליקציות זמין במאמר סקירה כללית על מאזן עומסים חיצוני של אפליקציות.
- במאמר סקירה כללית על מאזן עומסים של אפליקציות (ALB) פנימי מוסבר איך מפות URL פועלות במאזני עומסים של אפליקציות (ALB) פנימיים.