Configuración HTTP/2

Nota: La funcionalidad HTTP/2 es compatible con los modelos Citrix ADC MPX, VPX y SDX. En un dispositivo Citrix ADC VPX, la funcionalidad HTTP/2 se admite a partir de la versión 11.0.

El problema con el rendimiento de las aplicaciones web está directamente relacionado con la tendencia a aumentar el tamaño de la página y el número de objetos en las páginas web. HTTP/1.1 fue desarrollado para admitir páginas web más pequeñas, conexiones a Internet más lentas y hardware de servidor más limitado que el habitual hoy en día. No es adecuado para nuevas tecnologías como JavaScript y hojas de estilo en cascada (CSS) o nuevos tipos de medios como vídeos Flash e imágenes ricas en gráficos. Esto se debe a que solo puede solicitar un recurso por conexión al servidor. La limitación aumenta significativamente el número de viajes de ida y vuelta, lo que provoca una representación de páginas más larga y un rendimiento reducido de la red.

El protocolo HTTP/2 aborda estas limitaciones al permitir que la comunicación se produzca con menos datos transmitidos a través de la red y proporcionar la capacidad de enviar múltiples solicitudes y respuestas a través de una sola conexión. En su núcleo, HTTP/2 aborda las limitaciones clave de HTTP/1.1 mediante el uso de las conexiones de red subyacentes de manera más eficiente. Cambia la forma en que las solicitudes y respuestas viajan a través de la red.

HTTP/2 es un protocolo binario. Es más eficiente de analizar, más compacto en el cable, y lo más importante, es menos propenso a errores, en comparación con protocolos textuales como HTTP/1.1. El protocolo HTTP/2 utiliza una capa de trama binaria que define el tipo de trama y cómo se encapsulan y transfieren los mensajes HTTP entre el cliente y el servidor. La funcionalidad HTTP/2 admite el uso del método CONNECT para establecer una conexión de túnel a través de una sola secuencia HTTP/2 a un host remoto.

El protocolo HTTP/2 incluye muchos cambios para mejorar el rendimiento que mejoran significativamente el rendimiento, especialmente para clientes que se conectan a través de una red móvil.

La siguiente tabla enumera las principales mejoras en HTTP/2 sobre HTTP/1.1:

Funciones HTTP/2 Descripción
Compresión de encabezado Los encabezados HTTP tienen mucha información repetitiva y, por lo tanto, consumen ancho de banda innecesario durante la transmisión de datos. HTTP/2 reduce los requisitos de ancho de banda al comprimir el encabezado y minimizar el requisito de transportar encabezados HTTP con cada solicitud y respuesta.
Multiplexación de conexión La latencia puede tener un gran impacto en los tiempos de carga de la página y en la experiencia del usuario final. La multiplexación de conexión supera este problema mediante el envío de varias solicitudes y respuestas a través de una sola conexión.
Push de servidor La inserción del servidor permite al servidor enviar contenido de forma proactiva al explorador del cliente, evitando el retraso de ida y vuelta. Esta función almacena en caché las respuestas que cree que el cliente necesita, reduce el número de viajes de ida y vuelta y mejora el tiempo de representación de la página. Importante: El dispositivo Citrix ADC no admite la funcionalidad de inserción del servidor.
Sin bloqueo de encabezamiento En HTTP/1.1, los navegadores pueden descargar un recurso a la vez por conexión. Cuando un navegador tiene que descargar un recurso grande, bloquea la descarga de todos los demás recursos hasta que se complete la primera descarga. HTTP/2 supera este problema con un enfoque multiplexado. Permite al navegador cliente descargar otros componentes web en paralelo a través de la misma conexión y mostrarlos a medida que estén disponibles.
Priorización de solicitudes No todos los recursos tienen la misma prioridad cuando el navegador representa una página web. Para acelerar el tiempo de carga, todos los navegadores modernos priorizan las solicitudes por tipo de activo, su ubicación en la página e incluso por prioridad aprendida de visitas anteriores. Con HTTP/1.1, el navegador tiene una capacidad limitada para usar los datos de prioridad, ya que este protocolo no admite multiplexación y no hay forma de comunicar la priorización de solicitudes por parte del servidor. El resultado es una latencia de red innecesaria. HTTP/2 supera este problema permitiendo que el navegador envíe todas las solicitudes. El navegador puede comunicar su preferencia de priorización de flujos a través de dependencias y pesos de flujo, lo que permite a los servidores optimizar la entrega de respuestas. Importante: El dispositivo Citrix ADC no admite la funcionalidad de priorización de solicitudes.

Cómo funciona HTTP/2

Un dispositivo Citrix ADC admite HTTP/2 tanto en el lado del cliente como en el lado del servidor. En el lado del cliente, el dispositivo Citrix ADC actúa como un servidor que aloja un servidor virtual HTTP/HTTPS para HTTP/2. En el lado back-end, Citrix ADC actúa como cliente para los servidores enlazados al servidor virtual.

Por lo tanto, el dispositivo Citrix ADC mantiene conexiones independientes en el lado del cliente y en el lado del servidor. El dispositivo Citrix ADC tiene configuraciones HTTP/2 independientes para el lado del cliente y el lado del servidor.

HTTP/2 para HTTPS (SSL) configuración de equilibrio de carga

Para una configuración de equilibrio de carga HTTPS, el dispositivo Citrix ADC utiliza la extensión TLS ALPN (RFC 7301) para determinar si el cliente/servidor admite HTTP/2. Si lo hace, el dispositivo elige HTTP/2 como protocolo de capa de aplicación para transmitir datos (como se describe en RFC 7540 - Sección 3.3) en el lado cliente/servidor. El dispositivo utiliza el siguiente orden de preferencia al elegir el protocolo de capa de aplicación a través de la extensión TLS ALPN:

  • HTTP/2 (si está habilitado en el perfil HTTP)
  • SPDY (si está habilitado en el perfil HTTP)
  • HTTP/1.1

HTTP/2 para configuración de equilibrio de carga HTTP

Para una configuración de equilibrio de carga HTTP, el dispositivo Citrix ADC utiliza uno de los métodos siguientes para empezar a comunicarse con el cliente/servidor mediante HTTP/2.

Nota:

En las siguientes descripciones de métodos, cliente y servidor son términos generales para una conexión HTTP/2. Por ejemplo, para una configuración de equilibrio de carga de un dispositivo Citrix ADC mediante HTTP/2, el dispositivo Citrix ADC actúa como servidor en el lado del cliente y actúa como cliente en el lado del servidor.

  • Actualización HTTP/2. Un cliente envía una solicitud HTTP/1.1 a un servidor. La solicitud incluye un encabezado de actualización, que pide al servidor que actualice la conexión a HTTP/2. Si el servidor admite HTTP/2, el servidor acepta la solicitud de actualización y se lo notifica en su respuesta. El cliente y el servidor comienzan a comunicarse mediante HTTP/2 después de que el cliente recibe la respuesta de confirmación de actualización.

  • HTTP/2 directo. Un cliente comienza directamente a comunicarse con un servidor en HTTP/2 en lugar de utilizar el método de actualización HTTP/2. Si el servidor no admite HTTP/2 o no está configurado para aceptar directamente solicitudes HTTP/2, descarta los paquetes HTTP/2 del cliente. Este método es útil si el administrador del dispositivo cliente ya sabe que el servidor admite HTTP/2.

  • HTTP/2 directo mediante el servicio alternativo (ALT-SVC). Un servidor anuncia que admite HTTP/2 a un cliente mediante la inclusión de un campo Servicio Alternativo (ALT-SVC) en su respuesta HTTP/1.1. Si el cliente está configurado para comprender el campo ALT-SVC, el cliente y el servidor comienzan a comunicarse directamente mediante HTTP/2 después de que el cliente reciba la respuesta.

El dispositivo Citrix ADC proporciona opciones configurables en un perfil HTTP para los métodos HTTP/2. Estas opciones HTTP/2 se pueden aplicar al lado del cliente, así como al lado del servidor de una configuración de equilibrio de carga HTTPS o HTTP. Para obtener más información sobre los métodos y opciones HTTP/2, consulte el PDF Opciones de HTTP/2.

Antes de comenzar

Antes de comenzar a configurar HTTP/2 en un dispositivo Citrix ADC, tenga en cuenta lo siguiente:

  • El dispositivo Citrix ADC admite HTTP/2 tanto en el lado del cliente como en el lado del servidor.
  • El dispositivo Citrix ADC no admite la funcionalidad de inserción del servidor HTTP/2.
  • El dispositivo Citrix ADC no admite la funcionalidad de priorización de solicitudes HTTP/2.
  • El dispositivo Citrix ADC no admite la renegociación de SSL HTTP/2 para configuraciones de equilibrio de carga HTTPS.
  • El dispositivo Citrix ADC no admite la autenticación HTTP/2 NTLM.
  • HTTP/2 no funciona si el modo IP de origen de usuario (USIP) está habilitado y el modo proxy está inhabilitado en el dispositivo Citrix ADC.

Configuración de HTTP/2

La configuración de HTTP/2 para una configuración de equilibrio de carga (HTTPS o HTTP) consta de las siguientes tareas:

  • Habilite HTTP/2 y establezca parámetros HTTP/2 opcionales en un perfil HTTP. Habilite HTTP/2 en un perfil HTTP. Cuando solo habilita HTTP/2 en un perfil HTTP, el dispositivo Citrix ADC utiliza solo el método de actualización (para HTTP) o el método TLS ALPN (para HTTPS) para comunicarse en HTTP/2.

    Para que el dispositivo Citrix ADC utilice el método HTTP/2 directo, la opción HTTP/2 debe estar habilitada en el perfil HTTP. Para que el dispositivo Citrix ADC utilice HTTP/2 directo mediante el método de servicio alternativo, la opción Alternative service (altsvc) debe estar habilitada en el perfil HTTP.

  • Enlace el perfil HTTP a un servidor virtual o a un servicio. Enlazar el perfil HTTP a un servidor virtual para configurar HTTP/2 para el lado cliente de la configuración de equilibrio de carga. Enlazar el perfil HTTP a un servicio para configurar HTTP2 para el lado del servidor de la configuración de equilibrio de carga.

Nota:

Citrix recomienda vincular perfiles HTTP separados para el lado del cliente y el lado del servidor.

  • Habilite el parámetro global para el soporte del lado del servidor HTTP/2. Habilite el parámetro HTTP global del lado del servicio HTTP/2 (Http2ServerSide) para habilitar el soporte HTTP/2 en el lado del servidor de todas las configuraciones de equilibrio de carga que tienen HTTP/2 configurado.

    HTTP/2 no funciona en el lado del servidor de ninguna configuración de equilibrio de carga si el lado de servicio de HTTP/2 está inhabilitado incluso si HTTP/2 está habilitado en el perfil HTTP vinculado a los servicios de equilibrio de carga relacionados.

Procedimientos de la línea de comandos de Citrix ADC:

Para habilitar HTTP/2 y establecer parámetros HTTP/2 mediante la línea de comandos de Citrix ADC

  • Para habilitar HTTP/2 y establecer parámetros HTTP/2 al agregar un perfil HTTP, en el símbolo del sistema, escriba:

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

  • Para habilitar HTTP/2 y establecer parámetros HTTP/2 al modificar un perfil HTTP, en el símbolo del sistema, escriba:

set ns httpProfile <name> -http2 ( ENABLED | DISABLED ) [-http2Direct ( ENABLED | DISABLED)] [-altsvc (ENABLED | DISABLED )] show ns httpProfile <name>

Para enlazar el perfil HTTP a un servidor virtual mediante la línea de comandos de Citrix ADC

En el símbolo del sistema, escriba:

set lb vserver <name> - httpProfileName <string> show lb vserver <name>

Para enlazar el perfil HTTP a un servicio de equilibrio de carga mediante la línea de comandos de Citrix ADC

En el símbolo del sistema, escriba:

set service <name> -httpProfileName <string> show service <name>

Para habilitar la compatibilidad con HTTP/2 globalmente en el servidor mediante la línea de comandos de Citrix ADC

En el símbolo del sistema, escriba:

set ns httpParam -HTTP2Serverside( ENABLED | DISABLED ) show ns httpParam

Para habilitar HTTP/2 y establecer parámetros HTTP/2 mediante la GUI de Citrix ADC

  1. Vaya a Sistema > Perfiles y haga clic en la ficha Perfiles HTTP.
  2. Habilite HTTP/2 mientras agrega un perfil HTTP o modifica un perfil HTTP existente.

Para enlazar el perfil HTTP a un servidor virtual mediante la GUI de Citrix ADC

  1. Vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales y abra el servidor virtual.
  2. En Configuración avanzada, haga clic en + Perfil HTTPpara enlazar el perfil HTTP creado al servidor virtual.

Para enlazar el perfil HTTP a un servicio de equilibrio de carga mediante la GUI de Citrix ADC

  1. Desplácese a Administración del tráfico > Equilibrio de carga > servicio y abra el servicio.
  2. En Configuración avanzada, haga clic en + Perfil HTTPpara enlazar el perfil HTTP creado al servicio.

Para habilitar el soporte HTTP/2 globalmente en el lado del servidor mediante el uso de la interfaz gráfica de usuario

Vaya a Sistema > Configuración, haga clic en Cambiar parámetros HTTP y habilite HTTP/2 Server Side.

Configuraciones de ejemplo

En la siguiente configuración de ejemplo, HTTP/2 y HTTP/2 directo están habilitados en el perfil HTTP HTTP-PROFILE-HTTP2-CLIENT-SIDE. El perfil está enlazado al servidor virtual LB-VS-1.

set ns httpProfile HTTP-PROFILE-HTTP2-CLIENT-SIDE -http2 enabled -http2Direct enabled
Done

set lb vserver LB-VS-1 -httpProfileName HTTP-PROFILE-HTTP2-CLIENT-SIDE

Done

En la siguiente configuración de ejemplo, HTTP/2 y el servicio alternativo (ALT-SVC) están habilitados en el perfil HTTP HTTP-PROFILE-HTTP2-SERVER-SIDE. El perfil está vinculado al servicio LB-SERVICE-1.

set ns httpparam -HTTP2Serverside ENABLED
Done

set ns httpProfile HTTP-PROFILE-HTTP2-SERVER-SIDE -http2 ENABLED -altsvc ENABLED
Done

set service LB-SERVICE-1 -httpProfileName HTTP-PROFILE-HTTP2-SERVER-SIDE
Done