ADC

Compresión HTTP

Para los 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 la red mediante la compresión de las respuestas HTTP enviadas desde los servidores a exploradores compatibles con la compresión. Puede mejorar el rendimiento del servidor descargando la tarea de compresión con un uso intensivo de cómputo de los servidores al dispositivo NetScaler.

En la tabla siguiente 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 de las respuestas, pero siempre es significativa, lo que reduce notablemente la cantidad de datos transmitidos a través de la red.
Conocimiento del explorador NetScaler entrega datos comprimidos únicamente a exploradores que admiten 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.
Caché de compresión Con la función de almacenamiento en caché integrada habilitada, las solicitudes posteriores del mismo contenido se atienden 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.
Soporte HTTPS La compresión es útil en las conexiones SSL porque reduce la cantidad de contenido que debe cifrarse, ya sea en el servidor o en el dispositivo NetScaler, y ser descifrado por el cliente.
Filtrado inteligente de respuestas El motor de compresión NetScaler filtra de forma inteligente las respuestas del servidor en función de los 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 la compresión basada en servidores con la función de compresión de NetScaler.
Cambio de compresión El dispositivo NetScaler dirige de forma transparente las solicitudes de los clientes sensibles a la compresión a servidores con capacidad de compresión, de modo que las respuestas a esos clientes se compriman y las respuestas a otros clientes no se retrasan debido al procesamiento de compresión.

Cómo funciona la compresión HTTP

Un NetScaler puede comprimir datos tanto estáticos como generados dinámicamente. Aplica el algoritmo de compresión GZIP o 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 determine el algoritmo o algoritmos admitidos por el explorador (GZIP o DEFLATE).

La compresión de NetScaler trata el contenido estático y dinámico de forma diferente.

  • Los archivos estáticos se comprimen una sola vez y una copia comprimida se almacena en la memoria local. Las solicitudes de los clientes posteriores de archivos almacenados en caché se atienden 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 a NetScaler. El ADC examina los encabezados y almacena información sobre el tipo de compresión que admite el navegador, si existe alguna.
  2. El ADC reenvía la solicitud al servidor y recibe la respuesta.
  3. El motor de compresión NetScaler examina la compresibilidad de la respuesta del servidor comparándola con las directivas.
  4. Si la respuesta coincide con una directiva asociada a una acción de compresión y el explorador del cliente admite un algoritmo de compresión especificado por la acción, NetScaler aplica el algoritmo y envía la respuesta comprimida al explorador del 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 NetScaler. Debe habilitar la función antes de configurarla. Si la función está habilitada, el ADC comprime las solicitudes del 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 los servicios HTTP y SSL. Puede habilitarla globalmente para que se aplique a todos los servicios HTTP y SSL, o puede habilitarla solo para servicios específicos.

En el símbolo del sistema, introduzca uno de los siguientes comandos para habilitar la compresión de forma global o para un servicio específico:

  • enable ns feature cmp O BIEN:
  • 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 de forma global, vaya a Sistema > Configuración, haga clic en Configurar funciones básicas y seleccione Compresión HTTP.

Para habilitar la compresión de 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 active la compresión.

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

Una acción de compresión especifica la acción que se debe llevar a cabo 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 concreto 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 compatibles con GZIP o con 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 datos.
  • GZIP: utiliza el algoritmo GZIP para comprimir los datos de los 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 de exploradores compatibles con el algoritmo DEFLATE. Si el explorador no admite el algoritmo DEFLATE, la respuesta del explorador no se comprime. Tras crear una acción, asocie la acción a una o más directivas de compresión.

En el símbolo del sistema, 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 NetScaler identificar el tráfico que se debe comprimir.

Cuando NetScaler 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 el símbolo del sistema, introduzca el siguiente comando 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 NetScaler identificar el tráfico que se debe comprimir.

Cuando NetScaler 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 integrada Descripción
ns_adv_nocmp_mozilla_47 Impide la compresión de archivos CSS cuando se envía una solicitud desde un explorador Mozilla 4.7.
ns_adv_cmp_mscss Comprime los archivos CSS cuando la solicitud se envía desde un explorador Microsoft Internet Explorer.
ns_adv_cmp_msapp Comprime los archivos generados por las siguientes aplicaciones: Microsoft Office Word, Microsoft Office Excel, Microsoft Office PowerPoint.
ns_adv_cmp_content_type Comprime datos cuando la respuesta contiene encabezado Content-type y contiene texto.
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 de forma global, de modo que se aplique a todo el tráfico que fluye a través de NetScaler 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 que defina. Puede establecer la prioridad en cualquier número entero positivo.

Para enlazar una directiva de compresión mediante la CLI

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

  • bind cmp global <policyName> [-priority <positive_integer>][-gotoPriorityExpression <expression>] [-type <type>] [-invoke (<labelType> <labelName>) ]
  • bind lb vserver <vserverName> -policyName <policyName> -type (Request|Response) -priority <positive_integer> )

Repita este comando para cada servidor virtual al que quiera 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, vaya 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 Directivasy vincule la directiva correspondiente.

Para el servidor virtual de conmutación de contenido, vaya a Administración del tráfico > Conmutación de contenido > Servidores virtuales, seleccione el servidor virtual necesario, haga clic en Directivasy vincule la directiva correspondiente.

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

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

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

En la tabla siguiente se describen los parámetros de compresión que se pueden establecer en NetScaler.

parámetros de compresión Descripción
Tamaño cuántico Tamaño, en KB, del búfer que se mantiene para acumular respuestas del servidor. Las respuestas se comprimen cuando el tamaño del búfer supera este valor. Por ejemplo, si establece el tamaño cuántico en 50 KB, NetScaler 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 que se aplicará a las respuestas del servidor. Valores posibles: Mejor velocidad, mejor compresión, óptima.
Tamaño mínimo de respuesta HTTP Tamaño mínimo, en bytes, de una respuesta HTTP comprimida. Las respuestas inferiores al valor especificado por este parámetro se envían sin comprimirse.
Omitir la compresión en el uso de CPU Uso de la CPU de NetScaler, expresado como porcentaje, igual o superior al cual no se realiza ninguna compresión. Valor predeterminado: 100.
Permitir compresión del lado del servidor Permitir que los servidores envíen datos comprimidos a NetScaler.
Comprimir paquete push 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 único usuario y que no debe almacenarse en caché mediante 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 de forma global, vaya a Sistema > Configuración, haga clic en Configurar funciones básicasy seleccione Compresión HTTP.
  • Para habilitar la compresión de 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 active la compresión.

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 realizará en la respuesta HTTP

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

Vaya a Optimización > Compresión HTTP > Directivas, haga clic en Agregary 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 de tablero o en un monitor SNMP. La utilidad de tablero muestra estadísticas resumidas y detalladas en formato tabular y gráfico.

De forma opcional, también puede ver las estadísticas de una directiva de compresión, incluido el número de solicitudes 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 NetScaler.
  • Para obtener más información sobre SNMP, consulte el tema SNMP.

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

En el símbolo del sistema, introduzca los siguientes comandos para mostrar las estadísticas de compresión:

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

stat cmp

Nota El comando stat cmp policy muestra estadísticas únicamente para las directivas de compresión avanzada de directivas.

2. Para mostrar las visitas y los detalles de la directiva de compresión show cmp policy \<name\>

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

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

En la utilidad Panel de control, 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 comprimibles recibidos (OID: 1.3.6.1.4.1.5951.4.1.1.50.3)
  • Número de paquetes comprimibles transmitidos (OID: 1.3.6.1.4.1.5951.4.1.1.50.4)
  • Número de paquetes comprimibles recibidos (OID: 1.3.6.1.4.1.5951.4.1.1.50.5)
  • Relación de datos comprimibles recibidos y 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 más estadísticas de compresión 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 las 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 las 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

La compresión en un servidor puede afectar al rendimiento del servidor. Un NetScaler colocado frente a sus servidores web y configurado para compresión HTTP descarga la compresión del contenido estático y dinámico, lo que ahorra 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 NetScaler 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 NetScaler para quitar el encabezado “Aceptar codificación” de todas las solicitudes de cliente HTTP. A continuación, los servidores envían respuestas sin comprimir. NetScaler 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. NetScaler no intenta comprimir una respuesta que ya esté comprimida.

El parámetro Servercmp permite al dispositivo NetScaler gestionar la compresión HTTP de descarga. De forma predeterminada, este parámetro está activado para que el servidor envíe datos comprimidos al dispositivo NetScaler. Para descargar la compresión HTTP, debe establecer el parámetro servercmp en OFF. En el símbolo del sistema, introduzca los siguientes comandos:

set service <service name> -CMP YES

Repita este comando para cada servicio para el que quiera 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 el dispositivo recibe una respuesta comprimida del servidor, el dispositivo no comprime más los datos. En su lugar, reenvía la respuesta comprimida al cliente.

Compresión HTTP