Klassischen Proxy-Network Load Balancer (SSL-Proxy) mit VM-Instanzgruppen-Back-Ends einrichten

Dieses Dokument enthält eine Anleitung zum Einrichten eines klassischen Proxy-Network Load Balancers mit einem Ziel-SSL-Proxy und VM-Instanzgruppen-Back-Ends. Bevor Sie beginnen, lesen Sie die Übersicht über den externen Proxy-Netzwerk-Load-Balancer. Dort erhalten Sie Informationen zur Funktionsweise dieser Load-Balancer.

Einrichtung: Übersicht

Dieses Beispiel zeigt, wie ein externer Proxy-Netzwerk-Load-Balancer für einen Dienst eingerichtet wird, der in zwei Regionen vorhanden ist: us-central1 und us-east1. Sie konfigurieren dabei Folgendes:

  1. Vier Instanzen, verteilt auf zwei Regionen.
  2. Instanzgruppen für die Aufnahme der Instanzen.
  3. Folgende Back-End-Komponenten:
    • Systemdiagnose zur Überwachung des Instanzstatus.
    • Back-End-Dienst – Überwacht Instanzgruppen und verhindert, dass der konfigurierte Nutzungsumfang überschritten wird
    • Back-Ends zur Aufnahme der Instanzgruppen.
  4. Frontend components, which include the following:
    • Eine SSL-Zertifikatsressource. Sie können entweder ein selbstverwaltetes Zertifikat verwenden, bei dem Sie Ihr eigenes SSL-Zertifikat bereitstellen, oder ein von Google verwaltetes Zertifikat, bei dem Google ein Zertifikat ausstellt, das für alle Ihre Domains gültig ist. Weitere Informationen finden Sie unter Arten von SSL-Zertifikaten.
    • Den SSL-Proxy mit seinem SSL-Zertifikat.
    • Eine externe statische IPv4-Adresse und eine Weiterleitungsregel, mit der Nutzertraffic zum Proxy geleitet wird.
    • Eine externe statische IPv6-Adresse und eine Weiterleitungsregel, mit der Nutzertraffic zum Proxy geleitet wird.
  5. Eine Firewallregel, die Traffic vom Load-Balancer und der Systemdiagnose zu den Instanzen erlaubt.
  6. Optional eine SSL-Richtlinie zur Steuerung der SSL-Features, die der SSL-Proxy-Load-Balancer mit Clients aushandelt.

Anschließend testen Sie die Konfiguration.

Berechtigungen

Damit Sie dieser Anleitung folgen können, müssen Sie in der Lage sein, Instanzen zu erstellen und ein Netzwerk in einem Projekt zu ändern. Sie müssen entweder ein Inhaber oder Bearbeiter des Projekts sein oder alle folgenden Compute Engine-IAM-Rollen haben:

Aufgabe Erforderliche Rolle
Netzwerke, Subnetze und Load-Balancer-Komponenten erstellen Netzwerkadministrator
Firewallregeln hinzufügen und löschen Sicherheitsadministrator
Instanzen erstellen Compute-Instanzadministrator

Weitere Informationen finden Sie in folgenden Leitfäden:

Instanzen und Instanzgruppen konfigurieren

In diesem Abschnitt erfahren Sie, wie Sie Instanzen und Instanzgruppen erstellen und die Instanzen zu den Gruppen hinzufügen. In einem Produktionssystem werden in der Regel verwaltete Instanzgruppen verwendet, die auf Instanzvorlagen basieren. Für anfängliche Tests ist die hier beschriebene Konfiguration jedoch schneller.

Instanzen erstellen

Zu Testzwecken installieren Sie Apache auf vier Instanzen, jeweils zwei in zwei Instanzgruppen. Im Normalfall verwenden Sie für HTTP-Traffic keinen externen Proxy-Netzwerk-Load-Balancer. Apache ist jedoch eine gängige Sprache und lässt sich für Testzwecke einfach einrichten.

Erstellen Sie diese Instanzen mit dem Tag ssl-lb. Dieses Tag wird später von der Firewallregel verwendet.

Console

Instanzen erstellen

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu Seite „VM-Instanzen“

  2. Klicken Sie auf Instanz erstellen.

  3. Legen Sie als Name ig-us-central1-1 fest.

  4. Setzen Sie Zone auf us-central1-b.

  5. Klicken Sie auf Erweiterte Optionen.

  6. Klicken Sie auf Netzwerk und konfigurieren Sie das folgende Feld:

    1. Geben Sie bei Netzwerk-Tags den Wert ssl-lb ein.
  7. Klicken Sie auf Verwaltung. Fügen Sie im Feld Startskript das nachfolgende Skript ein.

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo a2ensite default-ssl
    sudo a2enmod ssl
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>ig-us-central1-1</h1></body></html>' | sudo tee /var/www/html/index.html
  8. Behalten Sie in den restlichen Feldern die Standardwerte bei.

  9. Klicken Sie auf Erstellen.

  10. Erstellen Sie ig-us-central1-2 mit den gleichen Einstellungen, verwenden Sie jedoch das folgende Startskript:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo a2ensite default-ssl
    sudo a2enmod ssl
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>ig-us-central1-2</h1></body></html>' | sudo tee /var/www/html/index.html
  11. Erstellen Sie ig-us-east1-1 mit denselben Einstellungen, außer dass die Zone auf us-east1-b festgelegt und das Startskript so eingestellt ist:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo a2ensite default-ssl
    sudo a2enmod ssl
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>ig-us-east1-1</h1></body></html>' | sudo tee /var/www/html/index.html
  12. Erstellen Sie ig-us-east1-2 mit denselben Einstellungen, außer dass die Zone auf us-east1-b festgelegt und das Startskript so eingestellt ist:

    sudo apt-get update
    sudo apt-get install apache2 -y
    sudo a2ensite default-ssl
    sudo a2enmod ssl
    sudo service apache2 restart
    echo '<!doctype html><html><body><h1>ig-us-east1-2</h1></body></html>' | sudo tee /var/www/html/index.html

gcloud

  1. Erstellen Sie ig-us-central1-1 in der Zone us-central1-b

    gcloud compute instances create ig-us-central1-1 \
       --image-family debian-10 \
       --image-project debian-cloud \
       --tags ssl-lb \
       --zone us-central1-b \
       --metadata startup-script="#! /bin/bash
         sudo apt-get update
         sudo apt-get install apache2 -y
         sudo a2ensite default-ssl
         sudo a2enmod ssl
         sudo service apache2 restart
         echo '<!doctype html><html><body><h1>ig-us-central1-1</h1></body></html>' | sudo tee /var/www/html/index.html
         EOF"
    
  2. Erstellen Sie ig-us-central1-2 in der Zone us-central1-b

    gcloud compute instances create ig-us-central1-2 \
      --image-family=debian-10 \
      --image-project=debian-cloud \
      --tags=ssl-lb \
      --zone=us-central1-b \
      --metadata=startup-script="#! /bin/bash
        sudo apt-get update
        sudo apt-get install apache2 -y
        sudo a2ensite default-ssl
        sudo a2enmod ssl
        sudo service apache2 restart
        echo '<!doctype html><html><body><h1>ig-us-central1-2</h1></body></html>' | sudo tee /var/www/html/index.html
         EOF"
    
  3. Erstellen Sie ig-us-east1-1 in der Zone us-east1-b

    gcloud compute instances create ig-us-east1-1 \
      --image-family=debian-10 \
      --image-project=debian-cloud \
      --tags=ssl-lb \
      --zone=us-east1-b \
      --metadata=startup-script="#! /bin/bash
        sudo apt-get update
        sudo apt-get install apache2 -y
        sudo a2ensite default-ssl
        sudo a2enmod ssl
        sudo service apache2 restart
        echo '<!doctype html><html><body><h1>ig-us-east1-1</h1></body></html>' | sudo tee /var/www/html/index.html
        EOF"
    
  4. Erstellen Sie ig-us-east1-2 in der Zone us-east1-b

    gcloud compute instances create ig-us-east1-2 \
      --image-family=debian-10 \
      --image-project=debian-cloud \
      --tags=ssl-lb \
      --zone=us-east1-b \
      --metadata=startup-script="#! /bin/bash
        sudo apt-get update
        sudo apt-get install apache2 -y
        sudo a2ensite default-ssl
        sudo a2enmod ssl
        sudo service apache2 restart
        echo '<!doctype html><html><body><h1>ig-us-east1-2</h1></body></html>' | sudo tee /var/www/html/index.html
        EOF"
    

Instanzgruppe für jede Zone erstellen und Instanzen hinzufügen

Console

  1. Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.

    Zu den Instanzgruppen

  2. Klicken Sie auf Instanzgruppe erstellen.

  3. Legen Sie als Name us-ig1 fest.

  4. Setzen Sie Zone auf us-central1-b.

  5. Klicken Sie unter Portzuordnung auf Port hinzufügen. Ein Load-Balancer sendet Traffic über einen benannten Port an eine Instanzgruppe. Erstellen Sie einen benannten Port, um den eingehenden Traffic einer bestimmten Portnummer zuzuordnen.

    1. Geben Sie als Portname ssl-lb und als Portnummern 443 ein.
  6. Klicken Sie unter Instanzdefinition auf Vorhandene Instanzen auswählen.

  7. Wählen Sie bei VM-Instanzen die Werte ig-us-central1-1 und ig-us-central1-2 aus.

  8. Übernehmen Sie die anderen Einstellungen.

  9. Klicken Sie auf Erstellen.

  10. Wiederholen Sie die Schritte, stellen Sie jedoch Folgendes ein:

    • Name: us-ig2
    • Zone: us-east1-b
    • Portname: ssl-lb und Portnummern: 443
    • Instanzen: ig-us-east1-1 und ig-us-east1-2.
  11. Vergewissern Sie sich, dass Sie nun zwei Instanzgruppen mit jeweils zwei Instanzen haben.

gcloud

  1. Erstellen Sie die Instanzgruppe us-ig1.

    gcloud compute instance-groups unmanaged create us-ig1 --zone us-central1-b
    
  2. Legen Sie einen benannten Port für die Instanzgruppe fest.

    gcloud compute instance-groups set-named-ports us-ig1 \
        --named-ports=ssl-lb:443 \
        --zone=us-central1-b
    
  3. Fügen Sie ig-us-central1-1 und ig-us-central1-2 zu us-ig1 hinzu.

    gcloud compute instance-groups unmanaged add-instances us-ig1 \
        --instances=ig-us-central1-1,ig-us-central1-2 \
        --zone=us-central1-b
    
  4. Erstellen Sie die Instanzgruppe us-ig2.

    gcloud compute instance-groups unmanaged create us-ig2 --zone us-east1-b
    
  5. Legen Sie einen benannten Port für die Instanzgruppe fest.

    gcloud compute instance-groups set-named-ports us-ig2 \
        --named-ports=ssl-lb:443 \
        --zone=us-east1-b
    
  6. Fügen Sie ig-us-east1-1 und ig-us-east1-2 zu us-ig2 hinzu.

    gcloud compute instance-groups unmanaged add-instances us-ig2 \
        --instances=ig-us-east1-1,ig-us-east1-2 \
        --zone=us-east1-b
    

Nun haben Sie für jede der beiden Regionen eine Instanzgruppe mit jeweils zwei Instanzen.

Firewallregel für den SSL-Load-Balancer erstellen

Konfigurieren Sie die Firewall so, dass sie Traffic vom Load-Balancer und der Systemdiagnose zu den Instanzen erlaubt.

Console

  1. Rufen Sie in der Google Cloud Console die Seite der Firewall-Richtlinien auf.

    Zu den Firewall-Richtlinien

  2. Klicken Sie auf Firewallregel erstellen.

  3. Geben Sie im Feld Name allow-ssl-lb-and-health ein.

  4. Wählen Sie unter Netzwerk die Option default aus.

  5. Wählen Sie unter Ziele die Option Angegebene Zieltags aus.

  6. Legen Sie ssl-lb als Ziel-Tags fest.

  7. Legen Sie unter Quellfilter die Option IPv4-Bereiche fest.

  8. Legen Sie unter Quell-IPv4-Bereiche die Werte 130.211.0.0/22 und 35.191.0.0/16 fest.

  9. Legen Sie unter Protokolle und Ports die Option Angegebene Protokolle und Ports auf tcp:443 fest.

  10. Klicken Sie auf Erstellen.

gcloud

gcloud compute firewall-rules create allow-ssl-lb-and-health \
  --source-ranges=130.211.0.0/22,35.191.0.0/16 \
  --target-tags=ssl-lb \
  --allow=tcp:443

Wenn Sie ein von Google verwaltetes Zertifikat verwenden, prüfen Sie, ob die Zertifikatressource den Status AKTIV hat. Weitere Informationen finden Sie unter Status des von Google verwalteten SSL-Zertifikats prüfen.

gcloud compute ssl-certificates list

Load-Balancer konfigurieren

Console

Konfiguration starten

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Klicken Sie auf Load-Balancer erstellen.
  3. Wählen Sie unter Typ des Load Balancers die Option Network Load Balancer (TCP/UDP/SSL) aus und klicken Sie auf Weiter.
  4. Wählen Sie unter Proxy oder Passthrough die Option Proxy-Load Balancer aus und klicken Sie auf Weiter.
  5. Wählen Sie für Öffentlich oder intern die Option Öffentlich (extern) aus und klicken Sie auf Weiter.
  6. Wählen Sie unter Globale oder einzelne Region-Bereitstellung die Option Am besten für globale Arbeitslasten aus und klicken Sie auf Weiter.
  7. Wählen Sie unter Generation des Load Balancers die Option Klassischer Proxy-Network Load Balancer aus und klicken Sie auf Weiter.
  8. Klicken Sie auf Konfigurieren.

Grundlegende Konfiguration

Legen Sie als Name my-ssl-lb fest.

Backend-Konfiguration

  1. Klicken Sie auf Backend-Konfiguration.
  2. Wählen Sie unter Backend-Typ die Option Instanzgruppen aus.
  3. Legen Sie für Protokoll den Wert SSL fest.
  4. Geben Sie als Benannter Port ssl-lb ein.
  5. Übernehmen Sie für Zeitlimit den Standardwert.
  6. Belassen Sie für Backend-Typ die Einstellung Instanzgruppen.
  7. Configure the first backend:
    1. Wählen Sie unter Neues Backend die Instanzgruppe us-ig1 aus.
    2. Legen Sie für Portnummern den Wert 443 fest.
    3. Behalten Sie die verbleibenden Standardwerte bei.
  8. Configure the second backend:
    1. Klicken Sie auf Backend hinzufügen.
    2. Wählen Sie die Instanzgruppe us-ig2 aus.
    3. Legen Sie für Portnummern den Wert 443 fest.
    4. Klicken Sie auf Fertig.
  9. Konfigurieren Sie die Systemdiagnose:
    1. Wählen Sie unter Systemdiagnose die Option Systemdiagnose erstellen aus.
    2. Geben Sie als Name für die Systemdiagnose my-ssl-health-check an.
    3. Wählen Sie unter Protokoll die Option SSL aus.
    4. Behalten Sie die verbleibenden Standardwerte bei.
    5. Klicken Sie auf Speichern und fortfahren.
  10. Prüfen Sie in der Google Cloud Console, ob neben Backend-Konfiguration ein Häkchen angezeigt wird. Ist dies nicht der Fall, prüfen Sie, ob Sie alle Schritte ausgeführt haben.

Frontend-Konfiguration

  1. Klicken Sie auf Front-End-Konfiguration.
  2. Fügen Sie die erste Weiterleitungsregel hinzu:
    1. Geben Sie als Namen my-ssl-lb-forwarding-rule ein.
    2. Wählen Sie unter Protokoll die Option SSL aus.
    3. Wählen Sie unter IP-Adresse die Option IP-Adresse erstellen aus:
      1. Geben Sie als Namen ssl-lb-static-ipv4 ein.
      2. Klicken Sie auf Reservieren.
    4. Wählen Sie unter Zertifikat die Option Neues Zertifikat erstellen.
    5. Geben Sie als Namen my-ssl-cert ein.
    6. Führen Sie die folgenden Schritte aus, wenn Sie Zertifikat hochladen auswählen:
      1. Fügen Sie Ihr Zertifikat ein oder klicken Sie auf Hochladen und suchen Sie nach Ihrer Zertifikatsdatei.
      2. Fügen Sie Ihren privaten Schlüssel ein oder klicken Sie auf Hochladen und suchen Sie nach Ihrer privaten Schlüsseldatei.
    7. Wenn Sie Von Google verwaltetes Zertifikat erstellen auswählen, geben Sie eine Domain ein.
      1. Klicken Sie auf Domain hinzufügen, um weitere Domains einzugeben.
      2. Klicken Sie auf Erstellen.
    8. Klicken Sie auf Zusätzliche Zertifikate, um zusätzlich zur primären SSL-Zertifikatsressource weitere Zertifikatsressourcen hinzuzufügen. Wählen Sie dann im Menü Zertifikate ein anderes Zertifikat aus oder klicken Sie auf Neues Zertifikat erstellen und folgen Sie der obigen Anleitung.
      1. (Optional) So erstellen Sie eine SSL-Richtlinie:
      2. Wählen Sie unter SSL-Richtlinie die Option eine Richtlinie erstellen aus.
      3. Geben Sie als Namen my-ssl-policy ein.
      4. Wählen Sie als Mindest-TLS-Version den Wert TLS 1.0 aus.
      5. Wählen Sie als Profil Modern aus. Anschließend werden Aktivierte Features und Deaktivierte Features angezeigt.
      6. Klicken Sie auf Speichern.
    9. (Optional) Aktivieren Sie bei Bedarf Proxy-Protokoll.
    10. Klicken Sie auf Fertig.
  3. Fügen Sie die zweite Weiterleitungsregel hinzu:
    1. Klicken Sie auf Frontend-IP und Port hinzufügen.
    2. Geben Sie my-ssl-lb-ipv6-forwarding-rule als Name ein.
    3. Legen Sie IPv6 als IP-Version fest.
    4. Klicken Sie unter IP-Adresse auf IP-Adresse erstellen.
      1. Geben Sie als Name ssl-lb-static-ipv6 ein.
      2. Klicken Sie auf Reservieren.
    5. Wählen Sie unter Zertifikat my-ssl-cert aus.
    6. Wenn Sie zusätzlich zur primären SSL-Zertifikatsressource weitere Zertifikatsressourcen hinzufügen möchten, wählen Sie entweder ein Zertifikat aus der Liste Zertifikate aus oder klicken Sie auf Neues Zertifikat erstellen.
    7. (Optional) Verwenden Sie eine SSL-Richtlinie oder aktivieren Sie bei Bedarf PROXY-Protokoll.
    8. Klicken Sie auf Fertig.
    9. Prüfen Sie, ob sich in der Google Cloud Console neben Frontend-Konfiguration ein grünes Häkchen befindet. Falls nicht, überprüfen Sie, ob Sie alle oben genannten Schritte ausgeführt haben.
    10. Klicken Sie auf Fertig.
  4. Überprüfen und abschließen

    1. Klicken Sie auf Prüfen und abschließen.
    2. Prüfen Sie die Konfigurationseinstellungen des Load-Balancers.
    3. Optional: Klicken Sie auf Entsprechender Code, um die REST API-Anfrage aufzurufen, die zum Erstellen des Load-Balancers verwendet wird.
    4. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie eine Systemdiagnose.
       gcloud compute health-checks create ssl my-ssl-health-check --port=443
       
  2. Erstellen Sie einen Back-End-Dienst.
       gcloud compute backend-services create my-ssl-lb \
           --load-balancing-scheme EXTERNAL \
           --global-health-checks \
           --protocol=SSL \
           --port-name=ssl-lb \
           --health-checks=my-ssl-health-check \
           --timeout=5m \
           --global
       

    Alternativ können Sie mit --protocol=TCP die unverschlüsselte Kommunikation vom Load Balancer zu den Instanzen konfigurieren.

  3. Fügen Sie Instanzgruppen zu Ihrem Backend-Dienst hinzu.
       gcloud compute backend-services add-backend my-ssl-lb \
           --instance-group=us-ig1 \
           --instance-group-zone=us-central1-b \
           --balancing-mode=UTILIZATION \
           --max-utilization=0.8 \
           --global
       
       gcloud compute backend-services add-backend my-ssl-lb \
           --instance-group=us-ig2 \
           --instance-group-zone=us-east1-b \
           --balancing-mode=UTILIZATION \
           --max-utilization=0.8 \
           --global
       
  4. SSL-Zertifikatsressource konfigurieren

    Wenn Sie selbstverwaltete Zertifikate verwenden, benötigen Sie mindestens ein SSL-Zertifikat, das Sie hochladen können. Wenn Sie kein SSL-Zertifikat haben, finden Sie entsprechende Informationen unter SSL-Zertifikate. Wenn Sie mehrere SSL-Zertifikate verwenden möchten, müssen Sie diese einzeln erstellen.

    Wenn Sie selbstverwaltete SSL-Zertifikate verwenden und weder einen privaten Schlüssel noch ein signiertes Zertifikat haben, können Sie zu Testzwecken ein selbst signiertes Zertifikat erstellen und nutzen.

    So erstellen Sie eine selbstverwaltete SSL-Zertifikatressource:

       gcloud compute ssl-certificates create my-ssl-cert \
           --certificate=CRT_FILE_PATH \
           --private-key=KEY_FILE_PATH
       

    So erstellen Sie eine von Google verwaltete SSL-Zertifikatsressource:

       gcloud compute ssl-certificates create www-ssl-cert \
           --domains=DOMAIN_1,DOMAIN_2
       
  5. Ziel-SSL-Proxy konfigurieren

    Externe Proxy-Network Load Balancer unterstützen die Erstellung eines Ziel-SSL-Proxys mit einem bis zu fünfzehn SSL-Zertifikaten. Bevor Sie diesen Befehl ausführen, müssen Sie eine SSL-Zertifikatressource für jedes Zertifikat erstellen.

    Wenn Sie den Proxyheader aktivieren möchten, legen Sie PROXY_V1 anstelle von none fest. Sie haben die Möglichkeit, eine SSL-Richtlinie an den Ziel-Proxy anzuhängen. Erstellen Sie zuerst die Richtlinie.

       gcloud compute ssl-policies create my-ssl-policy \
           --profile=MODERN \
           --min-tls-version=1.0
       

    Hängen Sie dann die Richtlinie an den Zielproxy an:

       gcloud compute target-ssl-proxies create my-ssl-lb-target-proxy \
           --backend-service=my-ssl-lb \
           --ssl-certificates=[SSL_CERT_1][,[SSL_CERT_2],...] \
           --ssl-policy=my-ssl-policy \
           --proxy-header=NONE
       
  6. Globale statische IP-Adressen reservieren

    Ihre Kunden greifen über diese IP-Adressen auf den Dienst mit Load-Balancing zu.

       gcloud compute addresses create ssl-lb-static-ipv4 \
           --ip-version=IPV4 \
           --global
       
       gcloud compute addresses create ssl-lb-static-ipv6 \
           --ip-version=IPV6 \
           --global
       
  7. Globale Weiterleitungsregeln konfigurieren

    Erstellen Sie globale Weiterleitungsregeln, die dem Ziel-Proxy zugeordnet sind. Ersetzen Sie LB_STATIC_IP und LB_STATIC_IPV6 durch die IP-Adressen, die Sie unter Globale statische IP-Adresse reservieren generiert haben.

       gcloud compute forwarding-rules create my-ssl-lb-forwarding-rule \
           --load-balancing-scheme EXTERNAL \
           --global \
           --target-ssl-proxy=my-ssl-lb-target-proxy \
           --address=LB_STATIC_IP \
           --ports=443
       
       gcloud compute forwarding-rules create my-ssl-lb-ipv6-forwarding-rule \
           --load-balancing-scheme EXTERNAL \
           --global \
           --target-ssl-proxy=my-ssl-lb-target-proxy \
           --address=LB_STATIC_IPV6 \
           --ports=443
       

Domain mit dem Load-Balancer verbinden

Notieren Sie sich nach der Erstellung des Load-Balancers die IP-Adresse, die diesem zugewiesen ist, z. B. 30.90.80.100. Wenn Sie Ihre Domain auf den Load-Balancer verweisen möchten, erstellen Sie mit Ihrem Domain-Registrierungsdienst einen A-Eintrag. Wenn Sie Ihrem SSL-Zertifikat mehrere Domains hinzugefügt haben, müssen Sie für jede Domain einen A-Eintrag hinzufügen, der auf die IP-Adresse des Load-Balancers verweist. So erstellen Sie beispielsweise A-Einträge für www.example.com und example.com:

NAME                  TYPE     DATA
www                   A        30.90.80.100
@                     A        30.90.80.100

Wenn Sie Cloud DNS als DNS-Anbieter verwenden, finden Sie weitere Informationen unter Einträge hinzufügen, ändern und löschen.

Load-Balancer testen

Stellen Sie in Ihrem Webbrowser über HTTPS eine Verbindung zu Ihrer statischen IP-Adresse her. In dieser Testkonfiguration verwenden die Instanzen selbst signierte Zertifikate. Daher wird eine Warnung angezeigt, wenn Sie zum ersten Mal eine Seite aufrufen. Bestätigen Sie die Warnung, um die eigentliche Seite zu sehen. Ersetzen Sie IP_ADDRESS durch die zuvor erstellte IPv4- oder IPv6-Adresse.

https://IP_ADDRESS

Sie sollten einen der Hosts aus der nächstgelegenen Region sehen. Laden Sie die Seite neu, um die andere Instanz in dieser Region aufzurufen. Damit Ihnen Instanzen aus der anderen Region angezeigt werden, beenden Sie die Instanzen in der nächstgelegenen Region.

Alternativ können Sie curl über die Befehlszeile Ihres lokalen Computers verwenden. Wenn Sie ein selbst signiertes Zertifikat für den SSL-Proxy verwenden, müssen Sie auch -k angeben. Mit der Option curl -k kann "curl" auch dann verwendet werden, wenn Sie ein selbst signiertes oder kein Zertifikat haben. Bei einem normalen Zertifikat können Sie diesen Parameter weglassen. Sie sollten den Parameter -k nur verwenden, um Ihre eigene Website zu testen. Unter normalen Umständen ist ein gültiges Zertifikat eine wichtige Sicherheitsmaßnahme und Zertifikatwarnungen sollten nicht ignoriert werden.

Ersetzen Sie IP_ADDRESS durch die zuvor erstellte IPv4- oder IPv6-Adresse.

curl -k https://IP_ADDRESS

Wenn Sie den Load-Balancer nicht erreichen können, führen Sie die unter Fehlerbehebung bei der Einrichtung beschriebenen Schritte aus.

Zusätzliche Konfigurationsoptionen

In diesem Abschnitt wird die Konfiguration des Beispiels um alternative und zusätzliche Optionen erweitert. Alle Aufgaben sind optional. Sie können sie in beliebiger Reihenfolge ausführen.

PROXY-Protokoll für den Erhalt der Verbindungsinformationen des Clients

Der Proxy-Network Load Balancer beendet TCP-Verbindungen vom Client und erstellt neue Verbindungen zu den Instanzen. Standardmäßig bleiben die ursprüngliche IP-Adresse des Clients und die Portinformationen nicht automatisch erhalten.

Aktivieren Sie deshalb das PROXY-Protokoll (Version 1). Damit bleiben die ursprünglichen Verbindungsinformationen erhalten und werden an Ihre Instanzen gesendet. Mit diesem Protokoll wird mit der Anfrage zusätzlich ein Header mit Quell-IP-Adresse, Ziel-IP-Adresse und Portnummern an die Instanz gesendet.

Achten Sie darauf, dass die Backend-Instanzen des Proxy-Network Load Balancers Server ausführen, die PROXY-Protokoll-Header unterstützen. Wenn die Server nicht für die Unterstützung von PROXY-Protokoll-Headern konfiguriert sind, geben die Backend-Instanzen leere Antworten zurück.

Wenn Sie das PROXY-Protokoll für Nutzer-Traffic festlegen, können Sie es auch für die Systemdiagnosen festlegen. Wenn Sie Systemdiagnosen und Inhaltsbereitstellung über denselben Port durchführen, legen Sie den --proxy-header der Systemdiagnose so fest, dass er mit der Einstellung des Load-Balancers übereinstimmt.

Der PROXY-Protokoll-Header enthält in der Regel eine einzelne, für Nutzer lesbare Textzeile im folgenden Format:

PROXY TCP4 <client IP> <load balancing IP> <source port> <dest port>\r\n

Das folgende Beispiel zeigt ein PROXY-Protokoll:

PROXY TCP4 192.0.2.1 198.51.100.1 15221 110\r\n

Im vorherigen Beispiel lautet die Client-IP-Adresse 192.0.2.1, die Load Balancing-IP-Adresse 198.51.100.1, der Clientport 15221 und der Zielport 110.

Wenn die Client-IP-Adresse nicht bekannt ist, generiert der Load Balancer einen PROXY-Protokoll-Header im folgenden Format:

PROXY UNKNOWN\r\n

PROXY-Protokoll-Header für Ziel-Proxy aktualisieren

In der Beispielkonfiguration für Load Balancer auf dieser Seite erfahren Sie, wie Sie den PROXY-Protokoll-Header beim Erstellen des Proxy-Network Load Balancers aktivieren. Führen Sie die folgenden Schritte aus, um den PROXY-Protokoll-Header eines bestehenden Ziel-Proxys zu ändern.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Klicken Sie neben dem Load Balancer auf Bearbeiten.
  3. Klicken Sie auf Frontend-Konfiguration.
  4. Ändern Sie den Wert des Felds Proxyprotokoll zu Ein.
  5. Klicken Sie auf Update (Aktualisieren), um die Änderungen zu speichern.

gcloud

Bearbeiten Sie im folgenden Befehl das Feld --proxy-header und legen Sie es je nach Anforderung auf NONE oder PROXY_V1 fest.

gcloud compute target-ssl-proxies update TARGET_PROXY_NAME \
    --proxy-header=[NONE | PROXY_V1]

Sitzungsaffinität konfigurieren

Mit diesen Verfahren wird gezeigt, wie Sie einen Backend-Dienst für den SSL-Proxy-Load-Balancer aus dem Beispiel aktualisieren, damit der Backend-Dienst die Client-IP-Affinität verwendet.

Wenn die Client-IP-Affinität aktiviert ist, leitet der Load-Balancer die Anfragen eines bestimmten Clients anhand eines Hashs, der aus der IP-Adresse des Clients und der IP-Adresse des Load-Balancers (der externen IP-Adresse einer externen Weiterleitungsregel) erstellt wurde, an dieselbe Backend-VM weiter.

Console

So aktivieren Sie die Client-IP-Sitzungsaffinität:

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Klicken Sie auf Back-Ends.

  3. Klicken Sie auf my-ssl-lb (Name des Back-End-Dienstes, den Sie für dieses Beispiel erstellt haben) und dann auf Bearbeiten.

  4. Klicken Sie auf der Seite Back-End-Dienstdetails auf Erweiterte Konfiguration.

  5. Wählen Sie im Menü unter Sitzungsaffinität die Option Client-IP aus.

  6. Klicken Sie auf Aktualisieren.

gcloud

Aktualisieren Sie den Back-End-Dienst my-ssl-lb mit dem folgenden gcloud-Befehl. Geben Sie dabei die Sitzungsaffinität der Client-IP an:

gcloud compute backend-services update my-ssl-lb \
    --global \
    --session-affinity=CLIENT_IP

API

Zum Festlegen der Client-IP-Sitzungsaffinität senden Sie eine PATCH-Anfrage an die Methode backendServices/patch.

PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/us-west1/backendServices/my-ssl-lb
{
  "sessionAffinity": "CLIENT_IP"
}

Verbindungsausgleich aktivieren

Sie können für Backend-Dienste den Verbindungsausgleich aktivieren, um Dienstausfälle für Nutzer zu minimieren, wenn eine Instanz, die Traffic bereitstellt, beendet bzw. manuell oder durch Autoscaling entfernt wird. Weitere Informationen zum Verbindungsausgleich finden Sie unter Verbindungsausgleich aktivieren.

Nächste Schritte