ADC

Puente inverso gRPC

En este escenario, el dispositivo Citrix ADC conecta sin problemas el contenido gRPC recibido en una conexión HTTP/2 y lo reenvía al servidor gRPC de fondo a través de HTTP/1.1.

Cómo funciona el puente inverso

El siguiente diagrama muestra cómo los componentes interactúan entre sí en una configuración de puente de gRPC.

Diagrama funcional de configuración de extremo a extremo de gRPC

  1. El cliente envía una solicitud de gRPC en una conexión HTTP/2 con encabezados de gRPC en marcos HTTP/2 y carga útil proto-buf.
  2. Según la evaluación de la directiva, el servidor virtual de equilibrio de carga (con el servicio gRPC vinculado a él) traduce y reenvía la solicitud a través de una conexión HTTP/1.1 al servidor de fondo.
  3. Al recibir la respuesta HTTP/1.1, si no hay ningún código de estado grpc en la respuesta, ADC obtiene un caso de estado grpc del código de respuesta HTTP.
  4. A continuación, el dispositivo inserta los encabezados del gRPC en el tráiler de HTTP/2 antes de reenviar la respuesta al cliente.

Configure el puente inverso de gRPC mediante la CLI

Para configurar el puente inverso de gRPC, debe completar los siguientes pasos:

  • Agregue el perfil HTTP 1 con HTTP/2 y HTTP/2 Direct habilitados para equilibrar la carga del servidor virtual
  • Agregue el perfil HTTP 2 con HTTP/2 inhabilitado para el servidor de fondo
  • Agregue un servidor virtual de equilibrio de carga de tipo SSL/HTTP y configúrelo en el perfil HTTP 1
  • Agregue el servicio para el punto final de gRPC y configúrelo en el perfil HTTP 2
  • Enlazar el servicio para el punto final de gRPC al servidor virtual de equilibrio de carga
  • Asigne el código de estado HTTP al código de estado gRPC si la respuesta no tiene un código de estado grpc

Agregue el perfil HTTP 1 con HTTP/2 y HTTP/2 Direct habilitados para equilibrar la carga del servidor virtual

Para iniciar la configuración del puente inverso, debe agregar dos perfiles HTTP. Un perfil para habilitar HTTP/2 para las solicitudes de clientes de gRPC y otro perfil para inhabilitar HTTP/2 para la respuesta de servidores que no son de GRPC.

En la línea de comandos, escriba:

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

Ejemplo:

add ns HttpProfile profile1 —http2 ACTIVADO -HTTP2DIRECT ACTIVADO

Agregue el perfil HTTP 2 con HTTP/2 inhabilitado para el servidor de fondo

Inhabilitar la compatibilidad con HTTP/2 en el perfil HTTP para la respuesta del servidor back-end mediante la línea de comandos de Citrix ADC.

En la línea de comandos, escriba: add ns httpProfile <name> - http2 ( ENABLED | DISABLED ) [-http2Direct ( ENABLED | DISABLED )]

Ejemplo:

add ns HttpProfile profile2 —http2 DESACTIVADO Http2Direct DESACTIVADO

Agregue un servidor virtual de equilibrio de carga de tipo SSL/HTTP y configúrelo en el perfil HTTP 1

Agregar un servidor virtual de equilibrio de carga mediante la interfaz de comandos Citrix ADC.

En la línea de comandos, escriba:

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

Ejemplo:

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

Nota:

Si utiliza un servidor virtual de equilibrio de carga de tipo SSL, debe vincular el certificado del servidor. Consulte el tema Vincular certificado de servidor para obtener más información.

Agregue el servicio para el punto final de gRPC y configúrelo en el perfil HTTP 2

Agregar un servicio con el punto final de gRPC y configurar el perfil HTTP 2 mediante la interfaz de comandos Citrix ADC.

En la línea de comandos, escriba:

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

Ejemplo:

add service svc-grpc 10.10.10.11 HTTP 80 -httpProfileName profile2

Enlazar el servicio para el punto final de gRPC al servidor virtual de equilibrio de carga

Enlazar un servicio gRPC a un servidor virtual de equilibrio de carga mediante la interfaz de comandos Citrix ADC.

En la interfaz de comandos, escriba:

bind lb vserver <name> <serviceName>

Ejemplo:

bind lb vserver lb-grpc svc-grpc

Asigne el código de respuesta HTTP al código de estado gRPC

Si el servidor no genera un código de estado gRPC, el dispositivo Citrix ADC genera un código de estado gRPC adecuado en función de la respuesta HTTP recibida. Los códigos de estado se muestran en la siguiente tabla de mapeo.

Código de estado de respuesta HTTP Código de estado gRPC
200 Aceptar
400 INTERNO = 13
403 PERMISO_DENEGADO = 7
401 SIN AUTENTICAR = 16
429, 502, 503, 504 NO DISPONIBLE = 14
404 NO IMPLEMENTADO = 12

Configure el puente inverso de gRPC mediante la interfaz gráfica de usuario

Agregue el perfil HTTP 1 con HTTP/2 y HTTP/2 Direct habilitados para equilibrar la carga del servidor virtual

  1. Vaya a Sistema > Perfiles y haga clic en Perfiles HTTP.
  2. Habilite la opción HTTP/2 en un perfil HTTP 1.

Agregue el perfil HTTP 2 con HTTP/2 inhabilitado para el servidor de fondo

  1. Vaya a Sistema > Perfiles y haga clic en Perfiles HTTP.
  2. Habilite la opción HTTP/2 en un perfil HTTP 2.
  3. Haga clic en Aceptar.

Agregue un servidor virtual de equilibrio de carga de tipo SSL/HTTP y configúrelo en el perfil HTTP 1

  1. Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales.
  2. Haga clic en Agregar para crear un servidor virtual de equilibrio de carga para el tráfico de gRPC.
  3. En la página Servidor virtual de equilibrio de carga, haga clic en Perfiles.
  4. En la sección Perfiles, seleccione el tipo de perfil como HTTP.
  5. Haga clic en Aceptar y, a continuación, Hecho.

Agregue el servicio con el punto de enlace gRPC y configúrelo en el perfil HTTP 2

  1. Vaya a Traffic Management > Load Balancing > Services.
  2. Haga clic en Agregar para crear un servidor de aplicaciones para el tráfico de gRPC.
  3. En la página del servicio de equilibrio de carga, vaya a la sección Perfil .
  4. En Perfiles, añada el perfil HTTP para el endpoint de gRPC.
  5. Haga clic en Aceptar y, a continuación, Hecho.

Enlazar el servicio para el punto final de gRPC al servidor virtual de equilibrio de carga

  1. Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales.
  2. Haga clic en Agregar para crear un servidor virtual de equilibrio de carga para el tráfico de gRPC.
  3. En la página Servidor virtual de equilibrio de carga, haga clic en la sección Serviciosy grupos de servicios.
  4. En la página Enlace del servicio de servidor virtual de equilibrio de carga, seleccione el servicio gRPC que desee vincular.
  5. Haga clic en Cerrar y, a continuación, en Listo.

Para obtener procedimientos de GUI detallados, consulte el tema Equilibrio de carga .

Puente inverso gRPC