Citrix ADC

gRPC Reverse Bridging

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

So funktioniert die umgekehrte Bridging

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

gRPC End-to-End-Konfiguration Funktionsdiagramm

  1. Client sendet eine gRPC-Anfrage auf HTTP/2 Verbindung mit gRPC-Headern in HTTP/2 Frames und proto-buf Payload.
  2. Basierend auf der Richtlinienauswertung übersetzt der virtuelle Lastausgleichsserver (mit dem an ihn gebundenen gRPC-Dienst) die Anforderung über HTTP/1.1-Verbindung und leitet sie an den Backend-Server weiter.
  3. Wenn beim Empfangen der HTTP/1.1-Antwort kein grpc-status-Code in der Antwort vorhanden ist, leitet ADC einen grpc status-case 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

Führen Sie die folgenden Schritte aus, um gRPC Reverse Bridging zu konfigurieren:

  • Hinzufügen von HTTP-Profil 1 mit HTTP/2 und HTTP/2 direkt für den Lastausgleich virtueller Server
  • HTTP-Profil 2 mit deaktiviertem HTTP/2 für Back-End-Server hinzufügen
  • Fügen Sie einen virtuellen Lastausgleichsserver vom Typ SSL/HTTP hinzu und setzen Sie auf HTTP-Profil 1
  • Dienst für den gRPC-Endpunkt hinzufügen und auf HTTP-Profil 2 festlegen
  • Binden Dienst für den gRPC-Endpunkt an den virtuellen Server des Lastausgleichs
  • Ordnen Sie HTTP-Statuscode dem gRPC-Statuscode zu, wenn die Antwort keinen grpc Statuscode hat

Hinzufügen von HTTP-Profil 1 mit HTTP/2 und HTTP/2 direkt für den Lastausgleich virtueller Server

Um die Reverse-Bridging-Konfiguration zu beginnen, müssen Sie zwei HTTP-Profile hinzufügen. Ein Profil zum Aktivieren von HTTP/2 für gRPC-Clientanforderungen und ein weiteres Profil zum Deaktivieren von HTTP/2 für Nicht-gRPC-Server-Antwort.

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

HTTP-Profil 2 mit deaktiviertem HTTP/2 für Back-End-Server hinzufügen

So deaktivieren Sie die HTTP/2-Unterstützung für das HTTP-Profil für die Backend-Serverantwortung 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 Lastausgleichsserver vom Typ SSL/HTTP hinzu und setzen Sie auf HTTP-Profil 1

So fügen Sie einen virtuellen Lastausgleichsserver 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 den gRPC-Endpunkt hinzufügen und auf HTTP-Profil 2 festlegen

So fügen Sie einen Dienst mit dem gRPC-Endpunkt hinzu und legen Sie 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

Binden Sie den Dienst für den gRPC-Endpunkt an den virtuellen Server für den Lastausgleich

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

Geben Sie an der Befehlsschnittstelle Folgendes ein:

bind lb vserver <name> <serviceName>

Beispiel:

bind lb vserver lb-grpc svc-grpc

HTTP-Antwortcode dem gRPC-Statuscode zuordnen

Wenn der Server keinen gRPC-Statuscode generiert, generiert die Citrix ADC Appliance basierend auf der empfangenen HTTP-Antwort einen geeigneten gRPC-Statuscode. 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 von gRPC Reverse Bridging über die GUI

Hinzufügen von HTTP-Profil 1 mit HTTP/2 und HTTP/2 direkt für den Lastausgleich virtueller Server

  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

HTTP-Profil 2 mit deaktiviertem HTTP/2 für Back-End-Server hinzufügen

  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 Lastausgleichsserver vom Typ SSL/HTTP hinzu und setzen Sie auf HTTP-Profil 1

  1. Navigieren Sie zu Verkehrsverwaltung > Lastenausgleich > Virtuelle Server.
  2. Klicken Sie auf Hinzufügen, um einen virtuellen Lastausgleichsserver für den 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 Lastenausgleich

Dienst mit dem gRPC-Endpunkt hinzufügen und auf HTTP-Profil 2 festlegen

  1. Navigieren Sie zu Verkehrsverwaltung > Lastenausgleich > Dienste.
  2. Klicken Sie auf Hinzufügen, um einen Anwendungsserver für den gRPC-Datenverkehr zu erstellen.
  3. Wechseln Sie auf der Seite Load Balancing Service zum Abschnitt Profil.
  4. Fügen Sie unter ProfileHTTP-Profil für den gRPC-Endpunkt hinzu.
  5. Klicken Sie auf OK und dann auf Fertig.

grpc Reverse Bridging Add Service für grpc Endpunkt

Binden Dienst für den gRPC-Endpunkt an den virtuellen Server des Lastausgleichs

  1. Navigieren Sie zu Verkehrsverwaltung > Lastenausgleich > Virtuelle Server.
  2. Klicken Sie auf Hinzufügen, um einen virtuellen Lastausgleichsserver für den gRPC-Datenverkehr zu erstellen.
  3. Klicken Sie auf der Seite für den Lastenausgleich auf den Abschnitt Dienst-und Dienstgruppen.
  4. Wählen Sie auf der Seite Bindung für den Lastenausgleich des virtuellen Serverdienstes den zu bindenden gRPC-Dienst aus.
  5. Klicken Sie auf Schließen und dann auf Fertig.

gRPC Reverse-Bind-Dienst für gRPC-Endpunkt

Detaillierte GUI-Prozeduren finden Sie unter Lastausgleich.

gRPC Reverse Bridging