Citrix ADC

PONT INVERSE GRPC

Dans ce scénario, l’appliance Citrix ADC relie de manière transparente le contenu GRPC reçu sur une connexion HTTP/2 et le transmet au serveur GRPC principal via HTTP/1.1.

Comment fonctionne le pont inverse

Le diagramme suivant montre comment les composants interagissent les uns avec les autres dans une configuration de pontage gRPC.

Schéma fonctionnel de configuration de bout en bout de gRPC

  1. Le client envoie une requête GRPC sur la connexion HTTP/2 avec les en-têtes GRPC dans les trames HTTP/2 et la charge utile proto-buf.
  2. Sur la base de l’évaluation de la stratégie, le serveur virtuel d’équilibrage de charge (avec le service GRPC lié à celui-ci) traduit et transfère la requête via une connexion HTTP/1.1 au serveur principal.
  3. À la réception de la réponse HTTP/1.1, s’il n’y a pas de code grpc-status dans la réponse, ADC dérive un cas d’état grpc du code de réponse HTTP.
  4. L’appliance insère ensuite les en-têtes gRPC dans la bande-annonce HTTP/2 avant de transmettre la réponse au client.

Configurer le pontage inverse gRPC à l’aide de l’interface de ligne de commande

Pour configurer le pontage inverse GRPC, vous devez effectuer les étapes suivantes :

  • Ajouter un profil HTTP 1 avec HTTP/2 et HTTP/2 directement activés pour l’équilibrage de charge serveur virtuel
  • Ajouter un profil HTTP 2 avec HTTP/2 désactivé pour le serveur back-end
  • Ajouter un serveur virtuel d’équilibrage de charge de type SSL/HTTP et définir sur le profil HTTP 1
  • Ajouter un service pour le point de terminaison gRPC et définir le profil HTTP 2
  • Liaison du service du point d’extrémité gRPC au serveur virtuel d’équilibrage de charge
  • Mapper le code d’état HTTP-Status au code d’état GRPC si la réponse n’a pas de code d’état grpc

Ajouter un profil HTTP 1 avec HTTP/2 et HTTP/2 directement activés pour l’équilibrage de charge serveur virtuel

Pour commencer la configuration de pontage inverse, vous devez ajouter deux profils HTTP. Un profil pour activer HTTP/2 pour les requêtes client GRPC et un autre profil pour désactiver HTTP/2 pour la réponse du serveur non-GRPC.

À l’invite de commandes, tapez :

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

Exemple :

add ns httpProfile profile1 –http2 ENABLED -http2Direct ENABLED

Ajouter un profil HTTP 2 avec HTTP/2 désactivé pour le serveur back-end

Pour désactiver la prise en charge HTTP/2 sur le profil HTTP pour la réponse du serveur principal à l’aide de la ligne de commande Citrix ADC.

À l’invite de commandes, tapez : add ns httpProfile <name> - http2 ( ENABLED | DISABLED ) [-http2Direct ( ENABLED | DISABLED )]

Exemple :

add ns httpProfile profile2 –http2 DISABLED http2Direct DISABLED

Ajouter un serveur virtuel d’équilibrage de charge de type SSL/HTTP et définir sur le profil HTTP 1

Pour ajouter un serveur virtuel d’équilibrage de charge à l’aide de l’interface de commande Citrix ADC.

À l’invite de commandes, tapez :

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

Exemple :

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

Remarque :

Si vous utilisez un serveur virtuel d’équilibrage de charge de type SSL, vous devez lier le certificat du serveur. Pour plus d’informations, reportez-vous à la rubrique Lier le certificat du serveur.

Ajouter un service pour le point de terminaison gRPC et définir le profil HTTP 2

Pour ajouter un service avec le point de terminaison GRPC et définir le profil HTTP 2 à l’aide de l’interface de commande Citrix ADC.

À l’invite de commandes, tapez :

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

Exemple :

add service svc-grpc 10.10.10.11 HTTP 80 -httpProfileName profile2

Service de liaison pour le point de terminaison GRPC au serveur virtuel d’équilibrage de charge

Pour lier un service GRPC au serveur virtuel d’équilibrage de charge à l’aide de l’interface de commande Citrix ADC.

Dans l’interface de commande, tapez :

bind lb vserver <name> <serviceName>

Exemple :

bind lb vserver lb-grpc svc-grpc

Mapper le code de réponse HTTP au code d’état GRPC

Si le serveur ne génère pas de code d’état GRPC, l’appliance Citrix ADC génère un code d’état GRPC approprié basé sur la réponse HTTP reçue. Les codes d’état sont répertoriés dans le tableau de correspondance ci-dessous.

Code d’état de la réponse HTTP Code d’état GRPC
200 OK
400 INTERNAL = 13
403 PERMISSION_DENIED = 7
401 UNAUTHENTICATED = 16
429, 502, 503, 504 UNAVAILABLE = 14
404 UNIMPLEMENTED = 12

Configurer le pont inverse GRPC à l’aide de l’interface graphique

Ajouter un profil HTTP 1 avec HTTP/2 et HTTP/2 directement activés pour l’équilibrage de charge serveur virtuel

  1. Accédez à Système > Profils et cliquez sur Profils HTTP.
  2. Activer l’option HTTP/2 dans un profil HTTP 1.

GrPc pont inverse ajouter un profil http avec le paramètre http2

Ajouter un profil HTTP 2 avec HTTP/2 désactivé pour le serveur back-end

  1. Accédez à Système > Profils et cliquez sur Profils HTTP.
  2. Activer l’option HTTP/2 dans un profil HTTP 2.
  3. Cliquez sur OK.

GrPC backend global pontage inverse HTTP/2

Ajouter un serveur virtuel d’équilibrage de charge de type SSL/HTTP et définir sur le profil HTTP 1

  1. Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels.
  2. Cliquez sur Ajouter pour créer un serveur virtuel d’équilibrage de charge pour le trafic gRPC.
  3. Dans la page Serveur virtuel d’équilibrage de charge, cliquez sur Profils.
  4. Dans la section Profils, sélectionnez le type de profil en tant que HTTP.
  5. Cliquez sur OK, puis sur Terminé.

grpc backend global pontage inverse HTTP/2 activer l'équilibrage de charge

Ajouter un service avec le point de terminaison GRPC et définir sur le profil HTTP 2

  1. Accédez à Gestion du trafic > Équilibrage de charge > Services.
  2. Cliquez sur Ajouter pour créer un serveur d’applications pour le trafic gRPC.
  3. Dans la page Service d’équilibrage de charge, accédez à la section Profil.
  4. Sous Profils, ajoutez un profil HTTP pour le point de terminaison gRPC.
  5. Cliquez sur OK, puis sur Terminé.

grpc pont inverse ajoute un service pour le point de terminaison grpc

Liaison du service du point d’extrémité gRPC au serveur virtuel d’équilibrage de charge

  1. Accédez à Gestion du trafic > Équilibrage de charge > Serveurs virtuels.
  2. Cliquez sur Ajouter pour créer un serveur virtuel d’équilibrage de charge pour le trafic gRPC.
  3. Dans la page Serveur virtuel d’équilibrage de charge, cliquez sur la section Groupes de services et de services.
  4. Dans la page Liaison de service de serveur virtuel d’équilibrage de charge, sélectionnez le service gRPC à lier.
  5. Cliquez sur Fermer, puis sur Terminé.

Service de liaison de pontage inverse GRPC pour point de terminaison GRPC

Pour obtenir des procédures d’interface graphique détaillées, reportez-vous à la rubrique Équilibrage de charge.

PONT INVERSE GRPC