Citrix ADC

GrPC Reverse Bridging

In diesem Szenario überbrückt die Citrix ADC Appliance gRPC-Inhalte, die auf einer HTTP/2-Verbindung empfangen wurden, nahtlos und leitet sie über HTTP/1.1 an den Back-End-gRPC-Server weiter.

Wie funktioniert Reverse Bridging

Das folgende Diagramm zeigt, wie Komponenten in einer gRPC-Bridging-Konfiguration miteinander interagieren.

gRPC End-to-End-Konfigurationsfunktions-Diagramm

  1. Der Client sendet eine gRPC-Anfrage für eine HTTP/2-Verbindung mit gRPC-Headern in HTTP/2-Frames und Proto-buf-Nutzlast.
  2. Basierend auf der Richtlinienbewertung übersetzt und leitet der virtuelle Lastausgleichsserver (an den gRPC-Dienst gebunden ist) die Anfrage über die HTTP/1.1-Verbindung an den Backend-Server weiter.
  3. Wenn beim Empfang der HTTP/1.1-Antwort kein grpc-statuscode in der Antwort enthalten ist, leitet ADC einen grpc-Statusfall vom HTTP-Antwortcode ab.
  4. Die Appliance fügt dann die GrPC-Header in den HTTP/2-Trailer ein, bevor die Antwort an den Client weitergeleitet wird.

Konfigurieren von GRPC Reverse Bridging über die CLI

Um GrPC Reverse Bridging zu konfigurieren, müssen Sie die folgenden Schritte ausführen:

  • Fügen Sie HTTP-Profil 1 hinzu, wobei HTTP/2 und HTTP/2 direkt für den virtuellen Lastausgleich aktiviert sind
  • Fügen Sie HTTP-Profil 2 hinzu, wobei HTTP/2 für Back-End-Server deaktiviert ist
  • Fügen Sie einen virtuellen Lastenausgleichsserver vom Typ SSL/HTTP hinzu und legen Sie ihn auf HTTP-Profil 1 fest
  • Dienst für GrPC-Endpoint hinzufügen und auf HTTP-Profil 2 setzen
  • Bind-Dienst für GrPC-Endpunkt zum Lastenausgleich des virtuellen Servers
  • Ordnen Sie HTTP-Statuscode dem gRPC-Statuscode zu, wenn die Antwort keinen grpc-Statuscode hat

Fügen Sie HTTP-Profil 1 hinzu, wobei HTTP/2 und HTTP/2 direkt für den virtuellen Lastausgleich aktiviert sind

Um mit der Reverse Bridging-Konfiguration zu beginnen, müssen Sie zwei HTTP-Profile hinzufügen. Ein Profil zum Aktivieren von HTTP/2 für GrPC-Clientanfragen und ein weiteres Profil zum Deaktivieren von HTTP/2 für Nicht-GRPC-Serverantwort.

Geben Sie an der Eingabeaufforderung Folgendes ein:

add ns httpProfile <name> - http2 ( ENABLED | DISABLED ) [-http2Direct ( ENABLED | DISABLED )]

Beispiel:

add ns httpProfile profile1 –http2 ENABLED -http2Direct ENABLED

Fügen Sie HTTP-Profil 2 hinzu, wobei HTTP/2 für Back-End-Server deaktiviert ist

Deaktivieren der HTTP/2-Unterstützung für das HTTP-Profil für Back-End-Serverantwort mithilfe der Citrix ADC Befehlszeile.

Geben Sie an der Eingabeaufforderung Folgendes ein: add ns httpProfile <name> - http2 ( ENABLED | DISABLED ) [-http2Direct ( ENABLED | DISABLED )]

Beispiel:

add ns httpProfile profile2 –http2 DISABLED http2Direct DISABLED

Fügen Sie einen virtuellen Lastenausgleichsserver vom Typ SSL/HTTP hinzu und legen Sie ihn auf HTTP-Profil 1 fest

So fügen Sie einen virtuellen Lastenausgleichsserver mithilfe der Citrix ADC Befehlsschnittstelle hinzu.

Geben Sie an der Eingabeaufforderung Folgendes ein:

add lb vserver <name> <service type> [(<IP address>@ <port>)] [-httpProfileName <string>]

Beispiel:

add lb vserver lb-grpc HTTP 10.10.10.10 80 -httpProfileName profile1

Hinweis:

Wenn Sie einen virtuellen Lastausgleichsserver vom Typ SSL verwenden, müssen Sie das Serverzertifikat binden. Weitere Informationen finden Sie unter Binden von Serverzertifikaten.

Dienst für GrPC-Endpoint hinzufügen und auf HTTP-Profil 2 setzen

So fügen Sie einen Dienst mit dem GrPC-Endpunkt hinzu und legen das HTTP-Profil 2 mithilfe der Citrix ADC Befehlsschnittstelle fest.

Geben Sie an der Eingabeaufforderung Folgendes ein:

add service <name> (<IP> | <serverName> ) <serviceType> <port> [-httpProfileName <string>]

Beispiel:

add service svc-grpc 10.10.10.11 HTTP 80 -httpProfileName profile2

Bind-Dienst für GrPC-Endpunkt zum Lastenausgleich des virtuellen Servers

So binden Sie einen gRPC-Dienst mithilfe der Citrix ADC Befehlsschnittstelle an den virtuellen Lastenausgleichsserver.

Geben Sie an der Befehlsschnittstelle Folgendes ein:

bind lb vserver <name> <serviceName>

Beispiel:

bind lb vserver lb-grpc svc-grpc

Ordnen Sie HTTP-Antwortcode auf gRPC-Status

Wenn der Server keinen gRPC-Statuscode generiert, generiert die Citrix ADC Appliance einen geeigneten gRPC-Statuscode basierend auf der empfangenen HTTP-Antwort. Die Statuscodes sind in der folgenden Zuordnungstabelle aufgeführt.

HTTP-Antwort-Statuscode gRPC Statuscode
200 OK
400 INTERNAL = 13
403 PERMISSION_DENIED = 7
401 UNAUTHENTICATED = 16
429, 502, 503, 504 UNAVAILABLE = 14
404 UNIMPLEMENTED = 12

Konfigurieren Sie das GrPC-Reverse Bridging mit der GUI

Fügen Sie HTTP-Profil 1 hinzu, wobei HTTP/2 und HTTP/2 direkt für den virtuellen Lastausgleich aktiviert sind

  1. Navigieren Sie zu System > Profile und klicken Sie auf HTTP-Profile.
  2. Aktivieren Sie die HTTP/2-Option in einem HTTP-Profil 1.

gRPC reverse bridging add http profile with http2 parameter

Fügen Sie HTTP-Profil 2 hinzu, wobei HTTP/2 für Back-End-Server deaktiviert ist

  1. Navigieren Sie zu System > Profile und klicken Sie auf HTTP-Profile.
  2. Aktivieren Sie die HTTP/2-Option in einem HTTP-Profil 2.
  3. Klicken Sie auf OK.

gRPC Reverse Bridging globales Backend HTTP/2

Fügen Sie einen virtuellen Lastenausgleichsserver vom Typ SSL/HTTP hinzu und legen Sie ihn auf HTTP-Profil 1 fest

  1. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server.
  2. Klicken Sie auf Hinzufügen, um einen virtuellen Lastausgleichsserver für gRPC-Datenverkehr zu erstellen.
  3. Klicken Sie auf der Seite Virtueller Server für Lastenausgleich auf Profile.
  4. Wählen Sie im Abschnitt Profile den Profiltyp als HTTP aus.
  5. Klicken Sie auf OK und dann auf Fertig.

grpc Reverse Bridging globales Backend HTTP/2 ermöglicht Load Balancing

Dienst mit GrPC-Endpunkt hinzufügen und auf HTTP-Profil 2 setzen

  1. Navigieren Sie zu Traffic Management > Load Balancing > Services.
  2. Klicken Sie auf Hinzufügen, um einen Anwendungsserver für gRPC-Datenverkehr zu erstellen.
  3. Wechseln Sie auf der Seite Load Balancing Service zum Abschnitt Profil.
  4. Fügen Sie unter Profileein HTTP-Profil für den GrPC-Endpoint hinzu.
  5. Klicken Sie auf OK und dann auf Fertig.

grpc Reverse Bridging Add Service für Grpc-Endpunkt

Bind-Dienst für GrPC-Endpunkt zum Lastenausgleich des virtuellen Servers

  1. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server.
  2. Klicken Sie auf Hinzufügen, um einen virtuellen Lastausgleichsserver für gRPC-Datenverkehr zu erstellen.
  3. Klicken Sie auf der Seite Load Balancing Virtual Server auf Abschnitt Service und Service Groups.
  4. Wählen Sie auf der Seite Load Balancing Virtual Server Service Binding den gRPC-Dienst aus, der gebunden werden soll.
  5. Klicken Sie auf Schließen und dann auf Fertig.

GrPC Reverse Bridging Bind Service für GrPC-Endpunkt

Detaillierte GUI-Prozeduren finden Sie unter Lastausgleich.

GrPC Reverse Bridging