הגדרת כתיבה מחדש של כתובת URL למאזן עומסים של אפליקציות (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. נכנסים לדף Load balancing במסוף Google Cloud .
    כניסה לדף Load balancing
  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 בדפדפן.

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