Compresión HTTP

Para sitios web con contenido comprimible, la función de compresión HTTP implementa compresión sin pérdidas para aliviar la latencia, los largos tiempos de descarga y otros problemas de rendimiento de red al comprimir las respuestas HTTP enviadas desde los servidores a los exploradores compatibles con la compresión. Puede mejorar el rendimiento del servidor descargando la tarea de compresión de uso intensivo computacional de los servidores al dispositivo Citrix ADC.

En la siguiente tabla se describen las capacidades de la función de compresión HTTP:

Funcionalidad Descripción
Índice de compresión La relación de compresión depende de los tipos de archivos en las respuestas, pero siempre es significativa, reduciendo notablemente la cantidad de datos transmitidos a través de la red.
Conocimiento del explorador Citrix ADC solo sirve datos comprimidos a exploradores compatibles con la compresión, lo que reduce el tiempo de transacción entre el cliente y el servidor. La mayoría de los exploradores web modernos admiten compresión HTTP.
Bloqueo de compresión Puede definir filtros de contenido para bloquear selectivamente la compresión aplicando acciones integradas.
Almacenamiento en caché de compresión Con la función de almacenamiento en caché integrada habilitada, las solicitudes posteriores para el mismo contenido se sirven desde la caché local, lo que reduce el número de viajes de ida y vuelta al servidor y mejora los tiempos de transacción.
Compatibilidad con HTTPS La compresión es especialmente útil en las conexiones SSL, ya que reduce la cantidad de contenido que debe cifrarse, ya sea en el servidor o en el dispositivo Citrix ADC, y descifrarse por el cliente.
Filtrado de respuesta inteligente El motor de compresión Citrix ADC filtra de forma inteligente las respuestas del servidor basándose en parámetros de compresión definidos. Por ejemplo, el motor de compresión detecta respuestas de longitud de contenido cero y respuestas comprimidas y no las comprime. La detección de respuestas comprimidas permite a los sitios de origen utilizar compresión basada en servidor junto con la función de compresión Citrix ADC.
Conmutación de compresión El dispositivo Citrix ADC dirige de manera transparente las solicitudes de clientes con reconocimiento de compresión a servidores con capacidad de compresión, de modo que las respuestas a esos clientes se comprimen y las respuestas a otros clientes no se retrasen por el procesamiento de compresión.

Cómo funciona la compresión HTTP

Un Citrix ADC puede comprimir datos estáticos y generados dinámicamente. Aplica el GZIP o el algoritmo de compresión DEFLATE para eliminar información extraña y repetitiva de las respuestas del servidor y representar la información original en un formato más compacto y eficiente. Estos datos comprimidos se envían al explorador del cliente y se descomprimen según lo determinado por el algoritmo o algoritmos compatibles del explorador (GZIP o DEFLATE).

La compresión Citrix ADC trata el contenido estático y dinámico de manera diferente.

  • Los archivos estáticos se comprimen una sola vez y una copia comprimida se almacena en la memoria local. Las solicitudes de cliente posteriores para archivos almacenados en caché se reparan desde esa memoria.
  • Las páginas dinámicas se crean dinámicamente cada vez que un cliente las solicita.

Cuando un cliente envía una solicitud al servidor:

  1. La solicitud del cliente llega al Citrix ADC. El ADC examina los encabezados y almacena información sobre qué tipo de compresión, si existe, admite el explorador.
  2. El ADC reenvía la solicitud al servidor y recibe la respuesta.
  3. El motor de compresión Citrix ADC examina la respuesta del servidor en busca de capacidad de compresión comparándola con las directivas.
  4. Si la respuesta coincide con una directiva asociada a una acción de compresión y el explorador cliente admite un algoritmo de compresión especificado por la acción, Citrix ADC aplica el algoritmo y envía la respuesta comprimida al explorador cliente.
  5. El cliente aplica el algoritmo de compresión compatible para descomprimir la respuesta.

Configurar compresión HTTP

De forma predeterminada, la compresión está inhabilitada en Citrix ADC. Debe habilitar la función antes de configurarla. Si la función está habilitada, el ADC comprime las solicitudes de servidor especificadas por las directivas de compresión.

Para habilitar la compresión HTTP mediante la CLI

La compresión solo se puede habilitar para servicios HTTP y SSL. Puede habilitarlo globalmente para que se aplique a todos los servicios HTTP y SSL, o puede habilitarlo solo para servicios específicos.

En la solicitud de comando, escriba uno de los siguientes comandos para habilitar la compresión globalmente o para un servicio específico:

  • enable ns feature cmp O
  • set service <name> -CMP YES

Para configurar la compresión mediante la interfaz gráfica de usuario

Lleve a cabo una de las siguientes acciones:

Para habilitar la compresión globalmente, vaya a Sistema > Configuración, haga clic en Configurar funciones básicas y seleccione Compresión HTTP.

Para habilitar la compresión para un servicio específico, vaya a Administración del tráfico > Equilibrio de carga > Servicios, seleccione el servicio y haga clic en Modificar. En el grupo Configuración, haga clic en el icono del lápiz y habilite Compresión.

Configuración de una acción de compresión

Una acción de compresión especifica la acción que se debe realizar cuando una solicitud o respuesta coincide con la regla (expresión) de la directiva a la que está asociada la acción. Por ejemplo, puede configurar una directiva de compresión que identifique las solicitudes que se enviarán a un servidor determinado y asociar la directiva a una acción que comprima la respuesta del servidor.

Hay cuatro acciones de compresión integradas:

  • COMPRESS: Utiliza el algoritmo GZIP para comprimir datos de exploradores que admiten GZIP o ambos GZIP y DEFLATE. Utiliza el algoritmo DEFLATE para comprimir datos de exploradores que solo admiten el algoritmo DEFLATE. Si el explorador no admite ninguno de los algoritmos, la respuesta del explorador no se comprime.
  • NOCOMPRESS: No comprime los datos.
  • GZIP: Utiliza el algoritmo GZIP para comprimir datos para exploradores compatibles con la compresión GZIP. Si el explorador no admite el algoritmo GZIP, la respuesta del explorador no se comprime.
  • DEFLATE: Utiliza el algoritmo DEFLATE para comprimir datos para exploradores compatibles con el algoritmo DEFLATE. Si el explorador no admite el algoritmo DEFLATE, la respuesta del explorador no se comprime. Después de crear una acción, asociarla a una o varias directivas de compresión.

En la solicitud de comando, escriba el siguiente comando para crear una acción de compresión:

add cmp action <name> <cmpType> [-addVaryHeader <addVaryHeader> -varyHeaderValue<string>]

Para configurar una directiva de compresión mediante la CLI

Una directiva de compresión contiene una regla, que es una expresión lógica que permite al dispositivo Citrix ADC identificar el tráfico que se debe comprimir.

Cuando Citrix ADC recibe una respuesta HTTP de un servidor, evalúa las directivas de compresión integradas y las directivas de compresión personalizadas para determinar si se comprime la respuesta y, en caso afirmativo, el tipo de compresión que se va a aplicar. Las prioridades asignadas a las directivas determinan el orden en que se comparan las directivas con las solicitudes.

En la solicitud de comando, escriba el comando siguiente para crear una directiva de compresión:

add cmp policy <name> -rule <expression> -resAction <string>

Para crear una acción de compresión mediante la interfaz gráfica de usuario

Vaya a Optimización > Compresión HTTP > Acciones, haga clic en Agregar y cree una acción de compresión para especificar el tipo de compresión que se va a realizar en la respuesta HTTP.

Configuración de una directiva de compresión

Una directiva de compresión contiene una regla, que es una expresión lógica que permite al dispositivo Citrix ADC identificar el tráfico que se debe comprimir.

Cuando Citrix ADC recibe una respuesta HTTP de un servidor, evalúa las directivas de compresión integradas y las directivas de compresión personalizadas para determinar si se comprime la respuesta y, en caso afirmativo, el tipo de compresión que se va a aplicar. Las prioridades asignadas a las directivas determinan el orden en que se comparan las directivas con las solicitudes.

En la tabla siguiente se enumeran las directivas de compresión HTTP integradas. Estas directivas se activan globalmente al habilitar la compresión.

Directiva de sintaxis clásica o predeterminada incorporada Descripción
ns_nocmp_mozilla_47, ns_adv_nocmp_mozilla_47 Evita la compresión de archivos CSS cuando se envía una solicitud desde un explorador Mozilla 4.7.
ns_cmp_mscss, ns_adv_cmp_mscss Comprime archivos CSS cuando la solicitud se envía desde un explorador Microsoft Internet Explorer.
ns_cmp_msapp, ns_adv_cmp_msapp Comprime los archivos generados por las siguientes aplicaciones: Microsoft Office Word, Microsoft Office Excel, Microsoft Office PowerPoint.
ns_cmp_content_type, ns_adv_cmp_content_type Comprime los datos cuando la respuesta contiene encabezado Content-type y contiene texto.
ns_nocmp_xml_ie, ns_adv_nocmp_xml_ie Impide la compresión cuando se envía una solicitud desde un explorador Microsoft Internet Explorer y la respuesta contiene un encabezado Content-Type y contiene texto o xml.

Vinculación de una directiva de compresión

Para aplicar una directiva de compresión, debe vincularla globalmente, de modo que se aplique a todo el tráfico que fluye a través del Citrix ADC, o a un servidor virtual específico, de modo que la directiva se aplique únicamente a las solicitudes cuyo destino sea la dirección VIP de ese servidor virtual.

Cuando vincula una directiva, le asigna una prioridad. La prioridad determina el orden en que se evalúan las directivas definidas. Puede establecer la prioridad en cualquier entero positivo.

Para enlazar una directiva de compresión mediante la CLI

En el símbolo del sistema, escriba uno de los siguientes comandos para enlazar una directiva de compresión globalmente o a un servidor virtual específico:

  • bind cmp global <policyName> [-priority <positive_integer>] [-state (ENABLED|DISABLED)]
  • bind lb vserver <vserverName> -policyName <policyName> -priority <positive_integer>.

Repita este comando para cada servidor virtual al que desee enlazar la directiva de compresión.

Para enlazar una directiva de compresión mediante la interfaz gráfica de usuario

Lleve a cabo una de las siguientes acciones:

A nivel global Navegue a Optimización > Compresión HTTP > Directivas, haga clic en Administrador de directivas y vincule las directivas necesarias especificando el punto de enlace y el tipo de conexión (solicitud/respuesta) pertinentes.

A nivel de servidor virtual

Para el servidor virtual de equilibrio de carga, vaya a Administración del tráfico > Equilibrio de carga > Servidores virtuales, seleccione el servidor virtual necesario, haga clic en Directivas y vincule la directiva pertinente.

Para el servidor virtual de conmutación de contenido, vaya a Administración de tráfico > Cambio de contenido > Servidores virtuales, seleccione el servidor virtual necesario, haga clic en Directivas y vincule la directiva pertinente.

Establecer los parámetros de compresión global para un rendimiento óptimo

Muchos usuarios aceptan los valores predeterminados para los parámetros de compresión global, pero es posible que pueda proporcionar una compresión más eficaz personalizando esta configuración.

Nota Después de configurar los parámetros de compresión globales, no es necesario reiniciar el dispositivo. Se aplican a los nuevos flujos inmediatamente.

En la tabla siguiente se describen los parámetros de compresión que puede establecer en Citrix ADC.

Parámetros de compresión Descripción
Tamaño cuántico Tamaño, en KB, del búfer mantenido para acumular respuestas del servidor. Las respuestas se comprimen cuando el tamaño del búfer excede este valor. Por ejemplo, si establece el tamaño cuántico en 50 KB, Citrix ADC comprime el contenido del búfer cuando su tamaño supera los 50 KB. Valor mínimo: 1. Valor máximo: 63488. Valor predeterminado: 57344.
Nivel de compresión Nivel de compresión para aplicar a las respuestas del servidor. Valores posibles: Mejor velocidad, Mejor compresión, óptimo.
Tamaño mínimo de respuesta HTTP Tamaño mínimo, en bytes, de una respuesta HTTP comprimida. Las respuestas menores que el valor especificado por este parámetro se envían sin ser comprimidas.
Evitar la compresión en el uso de la CPU Uso de la CPU de Citrix ADC, como porcentaje, en o por encima del cual no se realiza ninguna compresión. Valor predeterminado: 100.
Tipo de directiva* Tipo de directivas utilizadas para la compresión. Valores posibles: Clásico, Sintaxis predeterminada. Valor predeterminado: Clásico.
Permitir compresión del lado del servidor Permitir que los servidores envíen datos comprimidos al Citrix ADC.
Comprimir paquete de inserción Al recibir un paquete con un indicador TCP PUSH, comprima los paquetes acumulados inmediatamente, sin esperar a que se llene el búfer cuántico.
Caché externa Emita una directiva de respuesta privada que indique que el mensaje de respuesta está destinado a un solo usuario y no debe almacenarse en caché por una caché compartida o proxy.

Para configurar la compresión HTTP mediante la interfaz gráfica de usuario

Lleve a cabo una de las siguientes acciones:

  • Para habilitar la compresión globalmente, vaya a Sistema > Configuración, haga clic en Configurar funciones básicas y seleccione Compresión HTTP.
  • Para habilitar la compresión para un servicio específico, vaya a Administración del tráfico > Equilibrio de carga > Servicios, seleccione el servicio y haga clic en Modificar.
  • En el grupo Configuración, haga clic en el icono del lápiz y habilite Compresión.

Configurar la acción de compresión mediante la interfaz gráfica de usuario

Vaya a Optimización > Compresión HTTP > Acciones, haga clic en Agregar y cree una acción de compresión para especificar el tipo de compresión que se va a realizar en la respuesta HTTP

Configurar la directiva de compresión mediante la interfaz gráfica de usuario

Vaya a Optimización > Compresión HTTP > Directivas, haga clic en Agregar y cree una directiva de compresión especificando la condición y la acción correspondiente que se va a ejecutar.

Evaluar la configuración de compresión

Puede ver las estadísticas de compresión en la utilidad del panel o en un monitor SNMP. La utilidad de panel muestra estadísticas detalladas y de resumen en formato tabular y gráfico.

Opcionalmente, también puede ver estadísticas de una directiva de compresión, incluido el número de visitas que el contador de directivas incrementa durante la compresión basada en directivas.

Nota

  • Para obtener más información acerca de las estadísticas y los gráficos, consulte la ayuda del panel del dispositivo Citrix ADC.
  • Para obtener más información acerca de SNMP, consulte el tema SNMP.

Para ver las estadísticas de compresión mediante la CLI

En la solicitud de comando, escriba los siguientes comandos para mostrar las estadísticas de compresión:

  1. Para mostrar el resumen de estadísticas de compresión.

stat cmp

Nota El comando stat cmp policy solo muestra estadísticas para las directivas de compresión de sintaxis predeterminadas.

  1. Para mostrar los detalles y los resultados de las directivas de compresión show cmp policy <name>

  2. Para mostrar estadísticas de compresión detalladas stat cmp -detail

Para ver las estadísticas de compresión mediante el panel:

En la página del panel, puede mostrar los siguientes tipos de estadísticas de compresión:

  • Seleccione Compresión para mostrar un resumen de las estadísticas de compresión.
  • Para mostrar estadísticas de compresión detalladas por tipo de protocolo, haga clic en Detalles
  • Para mostrar la tasa de solicitudes procesadas por la función de compresión, haga clic en la ficha Vista gráfica.

Para ver estadísticas de compresión mediante SNMP

Puede ver las siguientes estadísticas de compresión mediante la aplicación de administración de red SNMP.

  • Número de solicitudes de compresión (OID: 1.3.6.1.4.1.5951.4.1.1.50.1)
  • Número de bytes comprimidos transmitidos (OID: 1.3.6.1.4.1.5951.4.1.1.50.2)
  • Número de bytes compresibles recibidos (OID: 1.3.6.1.4.1.5951.4.1.1.50.3)
  • Número de paquetes compresibles transmitidos (OID: 1.3.6.1.4.1.5951.4.1.1.50.4)
  • Número de paquetes compresibles recibidos (OID: 1.3.6.1.4.1.5951.4.1.1.50.5)
  • Relación entre los datos compresibles recibidos y los datos comprimidos transmitidos (OID: 1.3.6.1.4.1.5951.4.1.1.50.6)
  • Relación entre el total de datos recibidos y el total de datos transmitidos (OID: 1.3.6.1.4.1.5951.4.1.1.50.7)

Para ver estadísticas de compresión adicionales mediante la interfaz gráfica de usuario

  1. Para mostrar estadísticas de compresión HTTP:

Vaya a Optimización > Compresión HTTP y haga clic en Estadísticas.

  1. Para mostrar estadísticas de una directiva de compresión.

Vaya a Optimización > Compresión HTTP > Directivas > seleccione la directiva y haga clic en Estadísticas.

  1. Para mostrar estadísticas de una etiqueta de directiva de compresión

  2. Vaya a Optimización > Compresión HTTP > Directivas > seleccione una etiqueta de directiva y haga clic en Estadísticas.

Descarga de compresión HTTP

Realizar compresión en un servidor puede afectar al rendimiento del servidor. Un Citrix ADC colocado frente a sus servidores web y configurado para la compresión HTTP descarga la compresión de contenido estático y dinámico, ahorrando recursos y ciclos de CPU del servidor.

Puede descargar la compresión de los servidores web de dos maneras:

Inhabilite la compresión en los servidores web, habilite la función Citrix ADC Compression a nivel global y configure los servicios para la compresión.

Deje habilitada la función de compresión en los servidores web y configure el dispositivo Citrix ADC para eliminar el encabezado “Aceptar codificación” de todas las solicitudes de cliente HTTP. A continuación, los servidores envían respuestas sin comprimir. Citrix ADC comprime las respuestas del servidor antes de enviarlas a los clientes.

Nota La segunda opción no funciona si los servidores comprimen automáticamente todas las respuestas. Citrix ADC no intenta comprimir una respuesta que ya está comprimida.

El parámetro Servercmp permite al dispositivo Citrix ADC controlar la compresión HTTP de descarga. De forma predeterminada, este parámetro está activado para que el servidor envíe datos comprimidos al dispositivo Citrix ADC. Para descargar la compresión HTTP, debe establecer el parámetro servercmp en OFF. En la solicitud de comando, escriba los siguientes comandos:

set service <service name> -CMP YES

Repita este comando para cada servicio para el que desee habilitar la compresión.

show service <service name>

Repita este comando para cada servicio, para comprobar que la compresión está habilitada.

Save config

set cmp parameter –serverCmp OFF

Nota:

Cuando el parámetro Servercmp está activado y si el dispositivo recibe una respuesta comprimida del servidor, el dispositivo no comprime aún más los datos. En su lugar, reenvía la respuesta comprimida al cliente.