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

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

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

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

  • מידע נוסף על שינוי כתובות URL

  • מידע על מיפוי כתובות URL באופן כללי ועל התאמת נתיבים בפרט.

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

    בדוגמה הזו מוסבר איך ליצור שני משאבים:

    • http://IP_ADDRESS/never-fetch/three-cats.jpg
    • http://IP_ADDRESS/love-to-fetch/two-dogs.jpg

    המיקום שבו /never-fetch/three-cats.jpg מאוחסן ב-/cats, שהוא שירות ברירת המחדל, והמיקום שבו /love-to-fetch/two-dogs.jpg מאוחסן ב-/dogs.

    בשלב הזה, מפת ה-URL נראית כך:

    gcloud compute url-maps describe http-lb
    
    creationTimestamp: '2020-10-13T11:18:10.561-07:00'
    defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/cats
    fingerprint: MKfYsObzqgw=
    hostRules:
    - hosts:
      - '*'
      pathMatcher: path-matcher-1
    id: '1420501688756228493'
    kind: compute#urlMap
    name: test-bucket
    pathMatchers:
    - defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/cats
      name: path-matcher-1
      pathRules:
      - paths:
        - /love-to-fetch/*
        service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/dogs
    selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/http-lb
    

שינוי מפת URL

בדוגמה הזו, אתם משכתבים את כתובת ה-URL‏ /love-to-fetch/ כדי שהמשתמשים יוכלו להגיע לתמונה two-dogs.jpg באמצעות כתובת ה-URL הפשוטה הזו:

  • http://IP_ADDRESS/two-dogs.jpg

כדי לעשות זאת, משנים את מפת ה-URL של מאזן העומסים באופן הבא:

המסוף

עריכת מאזן העומסים

  1. עוברים לדף איזון עומסים במסוף Google Cloud .
    לדף איזון עומסים
  2. לחץ על http-lb.
  3. לוחצים על Edit.
  4. כדי להמשיך, צריך להשאיר את החלון פתוח.

שינוי הכללים של המארח והנתיב

  1. בעמודה הימנית של המסך, לוחצים על כללים לגבי מארח ונתיב.
  2. בוחרים באפשרות כלל מתקדם של מארח ונתיב (הפניה לכתובת URL, שכתוב של כתובת URL).
  3. לוחצים על השורה שמכילה את כלל הנתיב שאינו ברירת המחדל. במקרה הזה, השורה שמכילה כוכבית (*) לכל המארחים.
  4. לוחצים על סמל העיפרון בשורה /love-to-fetch/* Route traffic to a single backend: dogs.
  5. בקטע נתיבים, מוחקים את /love-to-fetch/* ומוסיפים את /*.
  6. בקטע פעולה, בוחרים באפשרות ניתוב תעבורה לשרת קצה עורפי יחיד.
  7. לוחצים על פעולת תוסף (כתיבה מחדש של כתובת URL).
  8. משאירים את השדה Host rewrite (שכתוב המארח) ריק.
  9. בקטע Path prefix rewrite (שכתוב קידומת הנתיב), מזינים /love-to-fetch/.
  10. בקטע Backend, בוחרים באפשרות dogs.
  11. לוחצים על Save.
  12. לוחצים על סיום. כלל חדש של מארח ונתיב נראה כך:

    נתיבים פעולה בק-אנד
    כל מה שלא תואם (ברירת מחדל) הפניית תנועה לחלק האחורי של האתר חתולים
    /* הפניית תנועה לחלק האחורי של האתר כלבים

  13. אם הכל נראה בסדר, לוחצים על עדכון כדי לעדכן את מאזן העומסים של HTTP.

gcloud

  1. יוצרים קובץ YAML‏ /tmp/http-lb.yaml, ומקפידים להחליף את PROJECT_ID במזהה הפרויקט.

    כשמשתמש מבקש את הנתיב /*, הנתיב נכתב מחדש בקצה העורפי למיקום בפועל של התוכן, שהוא /love-to-fetch/*.

    defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/cats
    hostRules:
    - hosts:
      - '*'
      pathMatcher: path-matcher-1
    name: http-lb
    pathMatchers:
    - defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/cats
      name: path-matcher-1
      pathRules:
      - paths:
        - /*
        routeAction:
          urlRewrite:
            pathPrefixRewrite: /love-to-fetch/
        service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/dogs
    tests:
    - description: Test routing to backend bucket, dogs
      host: example.com
      path: /love-to-fetch/test
      service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/dogs
    
  2. מאמתים את מפת ה-URL.

    gcloud compute url-maps validate --source /tmp/http-lb.yaml
    

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

  3. מעדכנים את מפת ה-URL.

    gcloud compute url-maps import http-lb \
       --source /tmp/http-lb.yaml \
       --global
    

בדיקה

שימו לב לכתובת ה-IPv4 שהוקצתה:

gcloud compute addresses describe example-ip \
    --format="get(address)" \
    --global

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

בשורת הפקודה, מריצים את פקודת ה-curl הבאה:

curl http://IP_ADDRESS/two-dogs.jpg

פותחים את http://IP_ADDRESS/two-dogs.jpg בדפדפן.

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