Citrix ADC

Puente inverso de GRPC

En este caso, el dispositivo Citrix ADC conecta sin problemas el contenido grPC recibido en una conexión HTTP/2 y lo reenvía al servidor GRPC back-end 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 integral de GRPC

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

Configurar el puente inverso de GRPC mediante la CLI

Para configurar el puente inverso de GRPC, debe realizar los siguientes pasos:

  • Agregar perfil HTTP 1 con HTTP/2 y HTTP/2 habilitado directo para el servidor virtual de equilibrio de carga
  • Agregar perfil HTTP 2 con HTTP/2 inhabilitado para el servidor back-end
  • Agregar servidor virtual de equilibrio de carga de tipo SSL/HTTP y configurado en perfil HTTP 1
  • Agregar servicio para el punto final de GRPC y establecer el perfil HTTP 2
  • Servicio de enlace para endpoint de GRPC al servidor virtual de equilibrio de carga
  • Asignar código de estado HTTP al código de estado de GRPC si la respuesta no tiene un código de estado grpc

Agregar perfil HTTP 1 con HTTP/2 y HTTP/2 habilitado directo para el servidor virtual de equilibrio de carga

Para iniciar la configuración de puente inverso, debe agregar dos perfiles HTTP. Un perfil para habilitar HTTP/2 para solicitudes de cliente de GRPC y otro perfil para inhabilitar HTTP/2 para respuesta de servidor que no sea GRPC.

En el símbolo del sistema, escriba:

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

Ejemplo:

add ns HttpProfile1 —http2 ENABLED -http2Direct HABILITADO

Agregar perfil HTTP 2 con HTTP/2 inhabilitado para el servidor back-end

Para 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 el símbolo del sistema, escriba: add ns httpProfile <name> - http2 ( ENABLED | DISABLED ) [-http2Direct ( ENABLED | DISABLED )]

Ejemplo:

add ns HttpProfile2 —http2 DESHABILITADO Http2Direct DESHABILITADO

Agregar servidor virtual de equilibrio de carga de tipo SSL/HTTP y configurado en perfil HTTP 1

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

En el símbolo del sistema, escriba:

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

Ejemplo:

agregar 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 enlazar el certificado del servidor. Consulte el tema Enlazar certificado de servidor para obtener más información.

Agregar servicio para el punto final de GRPC y establecer el perfil HTTP 2

Para agregar un servicio con endpoint de GRPC y establecer el perfil HTTP 2 mediante la interfaz de comandos de Citrix ADC.

En el símbolo del sistema, escriba:

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

Ejemplo:

add service svc-grpc 10.10.10.11 HTTP 80 -httpProfileName profile2

Servicio de enlace para el punto final de GRPC al servidor virtual de equilibrio de carga

Para enlazar un servicio GRPC al servidor virtual de equilibrio de carga mediante la interfaz de comandos de Citrix ADC.

En la interfaz de comandos, escriba:

bind lb vserver <name> <serviceName>

Ejemplo:

bind lb vserver lb-grpc svc-grpc

Asignar código de respuesta HTTP al código de estado de GrPC

Si el servidor no genera un código de estado GRPC, el dispositivo Citrix ADC genera un código de estado GrPC adecuado basado en la respuesta HTTP recibida. Los códigos de estado se enumeran en la siguiente tabla de asignación.

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

Configurar el puente inverso de GRPC mediante la GUI

Agregar perfil HTTP 1 con HTTP/2 y HTTP/2 habilitado directo para el servidor virtual de equilibrio de carga

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

El puente inverso de GRPC agrega perfil http con el parámetro http2

Agregar perfil HTTP 2 con HTTP/2 inhabilitado para el servidor back-end

  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.

back-end global de enlace inverso de gRPC HTTP/2

Agregar servidor virtual de equilibrio de carga de tipo SSL/HTTP y configurado en 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, Listo.

grpc reverse bridge back-end global HTTP/2 habilita el equilibrio de carga

Agregar servicio con endpoint de GRPC y establecer el perfil HTTP 2

  1. Vaya a Administración de Tráfico > Equilibrio de carga > Servicios.
  2. Haga clic en Agregar para crear un servidor de aplicaciones para el tráfico de GRPC.
  3. En la página Servicio de Equilibrio de carga, vaya a la sección Perfil.
  4. En Perfiles, agregue perfil HTTP para el extremo de GRPC.
  5. Haga clic en Aceptar y, a continuación, Listo.

servicio de adición de puentes inversos grpc para endpoint grpc

Servicio de enlace para endpoint 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 Grupos deserviciosy servicios .
  4. En la página Enlace de Servicio de Servidor Virtual de Equilibrio de Carga, seleccione el servicio GRPC que quiere enlazar.
  5. Haga clic en Cerrar y luego en Listo.

Servicio de enlace de puente inverso de GRPC para endpoint de GRPC

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

Puente inverso de GRPC