ADC

gRPC-Reverse-Bridging

In diesem Szenario überbrückt die NetScaler-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 Reverse Bridging

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

Funktionsdiagramm der gRPC-Komplettlösung

  1. Der Client sendet eine gRPC-Anfrage über eine HTTP/2-Verbindung mit gRPC-Headern in HTTP/2-Frames und Proto-Buf-Nutzlast.
  2. Basierend auf der Bewertung der Richtlinien übersetzt der virtuelle Load-Balancing-Server (mit dem daran gebundenen gRPC-Dienst) die Anfrage und leitet sie über eine HTTP/1.1-Verbindung an den Backend-Server weiter.
  3. Wenn die Antwort auf HTTP/1.1 empfangen wird und die Antwort keinen GRPC-Statuscode enthält, leitet ADC aus dem HTTP-Antwortcode einen GRPC-Statusfall ab.
  4. Die Appliance fügt dann die gRPC-Header in den HTTP/2-Trailer ein, bevor sie die Antwort an den Client weiterleitet.

Konfigurieren Sie gRPC Reverse Bridging mithilfe der CLI

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

  • Fügen Sie das HTTP-Profil 1 hinzu, wobei HTTP/2 und HTTP/2 Direct für den virtuellen Lastausgleichsserver aktiviert sind
  • Fügen Sie das HTTP-Profil 2 mit deaktiviertem HTTP/2 für den Backend-Server hinzu
  • Fügen Sie einen virtuellen Load-Balancing-Server vom Typ SSL/HTTP hinzu und stellen Sie ihn auf HTTP-Profil 1 ein
  • Dienst für den gRPC-Endpunkt hinzufügen und auf HTTP-Profil 2 setzen
  • Binden Sie den Dienst für den gRPC-Endpunkt an den virtuellen Lastausgleichsserver
  • Ordnen Sie den HTTP-Statuscode dem gRPC-Statuscode zu, wenn die Antwort keinen GRPC-Statuscode hat

Fügen Sie das HTTP-Profil 1 hinzu, wobei HTTP/2 und HTTP/2 Direct für den virtuellen Lastausgleichsserver 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 anderes Profil zum Deaktivieren von HTTP/2 für Serverantworten ohne gRPC.

Geben Sie in der Befehlszeile Folgendes ein:

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

Beispiel:

füge ns hinzu HttpProfile profile1 —http2 ENABLED -Http2Direct AKTIVIERT

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

Um die HTTP/2-Unterstützung im HTTP-Profil für die Antwort des Back-End-Servers zu deaktivieren, verwenden Sie die NetScaler-Befehlszeile.

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

Beispiel:

füge ns hinzu HttpProfile profile2 —http2 DEAKTIVIERT http2Direct DEAKTIVIERT

Fügen Sie einen virtuellen Load-Balancing-Server vom Typ SSL/HTTP hinzu und stellen Sie ihn auf HTTP-Profil 1 ein

So fügen Sie einen virtuellen Lastenausgleichsserver mithilfe der NetScaler Befehlszeilenschnittstelle hinzu.

Geben Sie in der Befehlszeile Folgendes ein:

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

Beispiel:

füge lb vserver lb-grpc HTTP 10.10.10.10 80 -HttpProfilname profile1 hinzu

Hinweis:

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

Dienst für den gRPC-Endpunkt 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 NetScaler Befehlszeilenschnittstelle fest.

Geben Sie in der Befehlszeile 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 Lastausgleichsserver

So binden Sie einen gRPC-Dienst mithilfe der NetScaler Befehlszeilenschnittstelle an den virtuellen Lastenausgleichsserver.

Geben Sie an der Befehlszeilenschnittstelle Folgendes ein:

bind lb vserver <name> <serviceName>

Beispiel:

bind lb vserver lb-grpc svc-grpc

Ordnen Sie den HTTP-Antwortcode dem gRPC-Statuscode zu

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

Statuscode der HTTP-Antwort gRPC-Statuscode
200 OK
400 INTERN = 13
403 ERLAUBNIS_VERWEIGERT = 7
401 NICHT AUTHENTIFIZIERT = 16
429, 502, 503, 504 NICHT VERFÜGBAR = 14
404 NICHT IMPLEMENTIERT = 12

Konfigurieren Sie gRPC Reverse Bridging mithilfe der GUI

Fügen Sie das HTTP-Profil 1 hinzu, wobei HTTP/2 und HTTP/2 Direct für den virtuellen Lastausgleichsserver 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.

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.

Fügen Sie einen virtuellen Load-Balancing-Server vom Typ SSL/HTTP hinzu und stellen Sie ihn auf HTTP-Profil 1 ein

  1. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server.
  2. Klicken Sie auf Hinzufügen, um einen virtuellen Lastausgleichsserver für gRPC-Verkehr 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.

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-Verkehr zu erstellen.
  3. Gehen Sie auf der Seite Load Balancing Service zum Abschnitt Profil .
  4. Fügen Sie unter Profiledas HTTP-Profil für den gRPC-Endpunkt hinzu.
  5. Klicken Sie auf OK und dann auf Fertig.

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

  1. Navigieren Sie zu Traffic Management > Load Balancing > Virtuelle Server.
  2. Klicken Sie auf Hinzufügen, um einen virtuellen Lastausgleichsserver für gRPC-Verkehr zu erstellen.
  3. Klicken Sieauf der Seite Load Balancing Virtual Server auf den Abschnitt Dienst und Dienstgruppen .**
  4. Wählen Sie auf der Seite Load Balancing Virtual Server Service Binding den gRPC-Dienst aus, den Sie binden möchten.
  5. Klicken Sie auf Schließen und dann auf Fertig.

Ausführliche GUI-Prozeduren finden Sie unter Thema Load Balancing .

gRPC-Reverse-Bridging