URL-Umschreibung für klassischen Application Load Balancer einrichten

In diesem Beispiel wird das Umschreiben des Pfades beschrieben, der in einer Anfrage für einen klassischen Application Load Balancer angegeben ist.

Informationen zum Konfigurieren der Trafficverwaltung für globale externe Application Load Balancer und regionale externe Application Load Balancer finden Sie auf den folgenden Seiten:

Hinweise

  • Informieren Sie sich über URL-Umschreibungen.

  • Informieren Sie sich insbesondere über URL-Zuordnungen allgemein und Pfad-Matcher.

  • Im Beispiel zum Umschreiben von URLs wird davon ausgegangen, dass Sie Ihren externen Application Load Balancer bereits gemäß den Schritten unter Load-Balancer mit Cloud Storage-Buckets einrichten erstellt haben.

    In diesem Beispiel werden Sie durch die Erstellung von zwei Ressourcen geführt:

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

    Dabei gilt: /never-fetch/three-cats.jpg wird in /cats gespeichert, dem Standarddienst, und /love-to-fetch/two-dogs.jpg wird in /dogs gespeichert.

    An dieser Stelle sieht die URL-Zuordnung so aus:

    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-Zuordnung ändern

In diesem Beispiel schreiben Sie die /love-to-fetch/-URL so um, dass Nutzer mit dieser vereinfachten URL auf das two-dogs.jpg-Bild zugreifen können:

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

Ändern Sie dazu die URL-Zuordnung des Load-Balancers so:

Console

Load-Balancer bearbeiten

  1. Öffnen Sie in der Google Cloud Console die Seite "Load-Balancing".
    Zur Seite „Load-Balancing“
  2. Klicken Sie auf http-lb.
  3. Klicken Sie auf Bearbeiten.
  4. Lassen Sie das Fenster geöffnet, um fortzufahren.

Host- und Pfadregeln ändern

  1. Klicken Sie in der linken Spalte des Bildschirms auf Host- und Pfadregeln.
  2. Wählen Sie Erweiterte Host- und Pfadregel (URL-Weiterleitung, URL-Umschreibung) aus.
  3. Klicken Sie auf die Zeile mit der Nicht-Standard-Pfadregel, in diesem Fall die Zeile, die für alle Hosts ein Sternchen (*) hat.
  4. Klicken Sie auf das Stiftsymbol  für die Zeile /love-to-fetch/* Route traffic to a single backend: dogs.
  5. Löschen Sie unter Pfade den Eintrag /love-to-fetch/* und fügen Sie /* hinzu.
  6. Wählen Sie unter Aktion die Option Traffic an ein einzelnes Back-End weiterleiten aus.
  7. Klicken Sie auf Add-on-Aktion (URL-Umschreibung).
  8. Lassen Sie Host-Umschreibung leer.
  9. Geben Sie unter Pfadpräfix-Umschreibung /love-to-fetch/ ein.
  10. Wählen Sie unter Back-End die Option dogs aus.
  11. Klicken Sie auf Speichern.
  12. Klicken Sie auf Fertig. Die neue Host- und Pfadregel sieht so aus:

    Pfade Aktion Back-End
    Alle nicht zugeordneten Pfade (Standard) Traffic an ein einzelnes Backend weiterleiten cats
    /* Traffic an ein einzelnes Backend weiterleiten dogs

  13. Wenn alles korrekt aussieht, klicken Sie auf Aktualisieren, um den HTTP-Load-Balancer zu aktualisieren.

gcloud

  1. Erstellen Sie eine YAML-Datei /tmp/http-lb.yaml und ersetzen Sie dabei PROJECT_ID durch Ihre Projekt-ID.

    Wenn ein Nutzer den Pfad /* anfordert, wird der Pfad im Back-End in den tatsächlichen Speicherort des Inhalts (/love-to-fetch/*) umgeschrieben.

    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. Validieren Sie die URL-Zuordnung.

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

    Wenn die Tests erfolgreich sind und der Befehl eine Erfolgsmeldung ausgibt, speichern Sie die Änderungen in der URL-Zuordnung.

  3. Aktualisieren Sie die URL-Zuordnung.

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

Tests

Notieren Sie sich die reservierte IPv4-Adresse:

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

Warten Sie einige Minuten, bis die Änderungen übernommen wurden. Dann können Sie die Konfiguration testen.

Führen Sie in der Befehlszeile den folgenden curl-Befehl aus:

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

Öffnen Sie http://IP_ADDRESS/two-dogs.jpg in einem Browser.

Nächste Schritte