Almacenamiento en caché integrado

La caché integrada proporciona almacenamiento en memoria en el dispositivo Citrix ADC y ofrece contenido web a los usuarios sin necesidad de un viaje de ida y vuelta a un servidor de origen. Para el contenido estático, la caché integrada requiere poca configuración inicial. Después de habilitar la función de caché integrada y realizar la configuración básica (por ejemplo, determinar la cantidad de memoria del dispositivo Citrix ADC que puede utilizar la caché), la caché integrada utiliza directivas integradas para almacenar y servir tipos específicos de contenido estático, incluidas páginas web simples y archivos de imagen. También puede configurar la caché integrada para almacenar y servir contenido dinámico que normalmente está marcado como no almacenable en caché por servidores web y de aplicaciones (por ejemplo, registros de bases de datos y cotizaciones de valores).

Nota: El término caché integrada se puede usar indistintamente con AppCache; tenga en cuenta que desde el punto de vista de la funcionalidad, ambos términos significan lo mismo.

Cuando una solicitud o respuesta coincide con la regla (expresión lógica) especificada en una directiva integrada o una directiva creada por el usuario, el dispositivo Citrix ADC realiza la acción asociada a la directiva. De forma predeterminada, todas las directivas almacenan objetos almacenados en caché y los recuperan del grupo Contenido predeterminado, pero puede crear sus propios grupos de contenido para diferentes tipos de contenido.

Para permitir que el dispositivo Citrix ADC encuentre objetos almacenados en caché en un grupo de contenido, puede configurar selectores, que hacen coincidir los objetos almacenados en caché con las expresiones, o bien especificar parámetros para buscar objetos en el grupo de contenido. Si utiliza selectores (que Citrix recomienda), configúrelos primero para que pueda especificar selectores al configurar grupos de contenido. A continuación, configure los grupos de contenido que desee agregar para que estén disponibles al configurar las directivas. Para completar la configuración inicial, cree bancos de directivas vinculando cada directiva a un punto de enlace global o a un servidor virtual, o a una etiqueta a la que se pueda llamar desde otros bancos de directivas.

Puede ajustar el rendimiento de la caché integrada mediante métodos como la carga previa de objetos almacenados en caché antes de que caduquen. Para administrar el manejo de los datos almacenados en caché una vez que salen del dispositivo Citrix ADC, puede configurar encabezados relacionados con la caché que se inserten en las respuestas. La caché integrada también puede actuar como proxy de reenvío para otros servidores de caché.

Nota: El almacenamiento en caché integrado requiere cierta familiaridad con las solicitudes y respuestas HTTP. Para obtener información acerca de la estructura de los datos HTTP, consulte Encabezados HTTP activos en "<http://livehttpheaders.mozdev.org/>."

Cómo funciona la caché de integración

La caché integrada supervisa las solicitudes HTTP y SQL que fluyen a través del dispositivo Citrix ADC y compara las solicitudes con las directivas almacenadas. Dependiendo del resultado, la función de caché integrada busca la respuesta en la caché o reenvía la solicitud al servidor de origen. Para las solicitudes HTTP, la función de caché integrada también puede servir contenido parcial de la caché en respuesta a solicitudes de rango de bytes único y de rango de bytes de varias partes.

Los datos almacenados en caché se pueden comprimir si el cliente acepta contenido comprimido. Puede configurar los tiempos de caducidad para un grupo de contenido y puede caducar selectivamente las entradas de un grupo de contenido.

Los datos que se sirven desde la caché integrada son una coincidencia de caché, y los datos servidos desde el origen son una pérdida de caché, como se describe en la tabla siguiente.

Tipo de transacción Especificación
Golpe de caché Respuestas que el dispositivo Citrix ADC sirve desde la caché, incluidas: Objetos estáticos, por ejemplo, archivos de imagen y páginas web estáticas, 200 páginas OK, 203 páginas de respuesta no autorizada, 300 páginas de opciones múltiples, 301 páginas movidas permanentemente, 302 páginas encontradas, 304 páginas no modificadas, Estas respuestas son conocidas como respuestas positivas. El dispositivo Citrix ADC también almacena en caché las siguientes respuestas negativas: 307 páginas de redirección temporal, 403 páginas prohibidas, 404 páginas no encontradas, 410 páginas pasadas. Para mejorar aún más el rendimiento, puede configurar el dispositivo Citrix ADC para almacenar en caché otros tipos de contenido.
Fallo de caché almacenable Para una pérdida de memoria caché almacenable, el dispositivo Citrix ADC obtiene la respuesta del servidor de origen y almacena la respuesta en la caché antes de servirla al cliente.
Fallo de caché no almacenable Una pérdida de caché no almacenable es inapropiada para el almacenamiento en caché. De forma predeterminada, cualquier respuesta que contenga los siguientes códigos de estado es una pérdida de caché no almacenable: 201, 202, 204, 205, 206 códigos de estado, Todos los códigos 4xx, excepto 403, 404 y 410, 5xx códigos de estado

Nota Para integrar el almacenamiento en caché dinámico con la infraestructura de aplicaciones, utilice la API NITRO para emitir comandos de caché de forma remota. Por ejemplo, puede configurar desencadenadores que caduquen las respuestas almacenadas en caché cuando se actualiza una tabla de base de datos.

Para garantizar la sincronización de las respuestas almacenadas en caché con los datos del servidor de origen, configure los métodos de caducidad. Cuando el dispositivo Citrix ADC recibe una solicitud que coincide con una respuesta caducada, actualiza la respuesta del servidor de origen.

Nota Citrix recomienda sincronizar las horas en el dispositivo Citrix ADC y en los servidores back-end.

Cómo funciona la caché dinámica

El almacenamiento en caché dinámico evalúa las solicitudes y respuestas HTTP en función de pares de parámetros, cadenas, patrones de cadenas u otros datos. Por ejemplo, supongamos que un usuario busca el error 31231 en una aplicación de informe de errores. El explorador envía la siguiente solicitud en nombre del usuario:

GET /mybugreportingsystem/mybugreport.dll?IssuePage&RecordId=31231&Template=view&TableId=1000

Host: mycompany.net

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko/2008052906 Firefox/3.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,\*/\*;q=0.8

Accept-Language: en-us,en;q=0.5

. . .

En este ejemplo, las solicitudes GET para esta aplicación de informe de errores siempre contienen los siguientes parámetros:

  • Página de emisión
  • Grabado
  • Plantilla
  • Id. de tabla

Las solicitudes GET no actualizan ni alteran los datos, por lo que puede configurar estos parámetros en directivas y selectores de almacenamiento en caché, de la siguiente manera:

  • Configurar una directiva de almacenamiento en caché que busca la cadena mybugreportingsystem y el método GET en las solicitudes HTTP. Esta directiva dirige las solicitudes coincidentes a un grupo de contenido para detectar errores.
  • En el grupo de contenido para errores, configura un selector de aciertos que coincida con varios pares de parámetros de valor, incluidos IssuePage, RecordID, etc.

Nota: Que un explorador puede enviar varias solicitudes GET basadas en una acción de usuario. La siguiente es una serie de tres solicitudes GET separadas que un explorador emite cuando un usuario busca un error basado en un ID de error.

GET /mybugreportingsystem/mybugreport.dll?IssuePage&RecordId=31231&Template=view&TableId=1000

GET /mybugreportingsystem/mybugreport.dll?IssuePage&Template=viewbtns&RecordId=31231&TableId=1000

GET /mybugreportingsystem/mybugreport.dll?IssuePage&Template=viewbody&RecordId=31231&tableid=1000

Para satisfacer estas solicitudes, se envían varias respuestas al explorador del usuario y la página web que ve el usuario es un ensamblado de las respuestas.

Si un usuario actualiza un informe de error, las respuestas correspondientes en la caché deben actualizarse con datos del servidor de origen. La aplicación de informes de errores emite solicitudes HTTP POST cuando un usuario actualiza un informe de error. En este ejemplo, configure lo siguiente para asegurarse de que las solicitudes POST desencadenan la invalidación en la caché:

  • Una directiva de invalidación de tiempo de solicitud que busca la cadena mybugreportingsystem y el método de solicitud HTTP POST, y dirige las solicitudes coincidentes al grupo de contenido para informes de errores.
  • Un selector de invalidación para el grupo de contenido para los informes de errores que caducan el contenido almacenado en caché basado en el parámetro RecordID. Este parámetro aparece en todas las respuestas, por lo que el selector de invalidación puede caducar todos los elementos relevantes en la caché.

El siguiente extracto muestra una solicitud POST que actualiza el informe de error de ejemplo.

POST /mybugreportingsystem/mybugreport.dll?TransitionForm HTTP/1.1\r\n

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) Opera 7.23 [en]\r\n

Host: mybugreportingsystem\r\n

Cookie:ttSearch.134=%23options%3Afalse%23active%23owner%3Afalse%23unowned%3Afalse%23submitter%3Afalse%23incsub%3Atrue;

Cookie2: $Version=1\r\n

. . .

\r\n

ProjectId=2&RecordId=31231&TableId=1000&TransitionId=1&Action=Update&CopyProjectId=0&ReloadForm=0&State=&RecordLockId=49873+issues+in+HTTP&F43. . .

Cuando el dispositivo Citrix ADC recibe esta solicitud, realiza lo siguiente:

  • Coincide la solicitud con una directiva de invalidación.
  • Busca el grupo de contenido que se denomina en la directiva.
  • Aplica el selector de invalidación para este grupo de contenido y caduca todas las respuestas que coincidan con RecordID=31231.

Cuando un usuario emite una nueva solicitud para este informe de error, el dispositivo Citrix ADC va al servidor de origen para obtener copias actualizadas de todas las respuestas asociadas a la instancia del informe, almacena las respuestas en el grupo de contenido y las envía al explorador del usuario, que vuelve a ensamblar el informe y muestra Eso.

Configurar caché integrada

Para utilizar la caché integrada, debe instalar la licencia y habilitar la función. Después de habilitar la caché integrada, el dispositivo Citrix® Citrix ADC® almacena automáticamente en caché objetos estáticos según lo especificado por las directivas integradas y genera estadísticas sobre el comportamiento de la caché. (Las directivas integradas tienen un guión bajo en la posición inicial del nombre de la directiva.)

Incluso si las directivas integradas son adecuadas para su situación, es posible que desee modificar los atributos globales. Por ejemplo, es posible que desee modificar la cantidad de memoria del dispositivo Citrix ADC asignada a la caché integrada.

Si desea observar el funcionamiento de la caché antes de cambiar la configuración, consulte “Visualización de objetos almacenados en caché y estadísticas de caché.”

Nota La caché Citrix ADC es un almacén en memoria que se purga al reiniciar el dispositivo.

Para instalar la licencia de caché integrada

Se requiere una licencia de caché integrada. Para obtener información acerca de las licencias, consulte información sobre el tema obtención de licencias.

Obtenga un código de licencia de Citrix, vaya a la interfaz de línea de comandos e inicie sesión.

En la interfaz de línea de comandos, copie el archivo de licencia en la carpeta /nsconfig/license.

Reinicie el dispositivo Citrix ADC mediante el siguiente comando:

reiniciar

Para habilitar el almacenamiento en caché integrado: cuando habilita el almacenamiento en caché integrado, el dispositivo Citrix ADC comienza a almacenar en caché las respuestas del servidor. Si no ha configurado ninguna directiva o grupo de contenido, las directivas integradas almacenan objetos almacenados en caché en el grupo de contenido predeterminado.

En el símbolo del sistema, escriba uno de los siguientes comandos para habilitar o inhabilitar el almacenamiento en caché integrado:

‘habilitar la función NS IC’

Para configurar atributos globales para el almacenamiento en caché

Los atributos globales se aplican a todos los datos almacenados en caché. Puede especificar la cantidad de memoria Citrix ADC asignada a la caché integrada, mediante inserción de encabezado, un criterio para verificar que se debe servir un objeto almacenado en caché, la longitud máxima de un cuerpo POST permitido en la caché, si se debe omitir la evaluación de directivas para solicitudes HTTP GET y una acción que se debe realizar cuando no se puede evaluar una directiva.

La capacidad de memoria caché solo está limitada por la memoria del dispositivo de hardware. Además, cualquier motor de paquetes (el concentrador de distribución central de todas las solicitudes TCP entrantes) del dispositivo Citrix ADC de nCore conoce los objetos almacenados en caché por otros motores de paquetes en el dispositivo Citrix ADC de nCore.

Nota: Cuando el límite de memoria global predeterminado se establece como 0 y la función Almacenamiento en caché integrado (IC) está habilitada, el dispositivo no almacena en caché ningún objeto. Para el almacenamiento en caché, debe configurar explícitamente el límite de memoria global. Sin embargo, si habilita la opción “set aaa parameter EnableStaticPageCaching”, habrá alguna memoria predeterminada configurada en el dispositivo. Esta memoria no es suficiente para almacenar en caché objetos grandes, por lo que es necesario asignar un límite de memoria más alto para IC. Puede realizar esto configurando el comando “set cache parameter —memLimit”. La nueva configuración se aplica solo después de guardar la configuración y reiniciar el dispositivo.

Puede modificar el límite de memoria global configurado para almacenar en caché objetos. Sin embargo, cuando actualiza el límite de memoria global a un valor inferior al valor existente (por ejemplo, de 10 GB a 4 GB), si ya se está mediante una cantidad mayor de memoria (mayor que 4 GB) para almacenar en caché objetos, el Citrix ADC continúa mediante esa cantidad de memoria.

Esto significa que aunque el límite de almacenamiento en caché integrado está configurado con algún valor, el límite real utilizado puede ser mayor. Sin embargo, esta memoria excesiva se libera cuando los objetos se eliminan de la caché.

El resultado del comando show cache parameter indica el valor configurado (memory Usage limit) y el valor real que se está mediante (memory use limit (memory use limit) (memory use limit (active value)).

En el símbolo del sistema, escriba:

set cache parameter [-memLimit <MBytes>] [-via <string>] [-verifyUsing <criterion>] [-maxPostLen <positiveInteger>] [-prefetchMaxPending <positiveInteger>] [-enableBypass(YES|NO)] [-undefAction (NOCACHE|RESET)]

Para habilitar el almacenamiento en caché integrado mediante la GUI:

Vaya a Sistema > Configuración, haga clic en Configurar funciones básicas y seleccione Almacenamiento en caché integrado.

Para configurar la configuración global para el almacenamiento en caché mediante la GUI:

Vaya a Optimización > Almacenamiento en caché integrado, haga clic en Cambiar configuración de caché y configure la configuración global para el almacenamiento en caché.

Para configurar el grupo de contenido integrado, el conjunto de patrones y las directivas para la caché integrada:

El dispositivo Citrix ADC incluye una configuración integrada de almacenamiento en caché que puede utilizar para almacenar contenido en caché. La configuración consiste en un grupo de contenido denominado ctx_cg_poc, un conjunto de patrones denominado ctx_file_extensions y un conjunto de directivas de caché integradas. En el grupo de contenido ctx_cg_poc, solo se almacenan en caché los objetos de 500 KB o menos. El contenido se almacena en caché durante 86000 segundos y el límite de memoria para el grupo de contenido es de 512 MB. El conjunto de patrones es una matriz indexada de extensiones de archivo comunes para la coincidencia de tipos de archivo.

En la siguiente tabla se enumeran las directivas integradas de almacenamiento en caché. De forma predeterminada, las directivas no están enlazadas a ningún punto de enlace. Debe vincularlos a un punto de enlace si desea que el dispositivo Citrix ADC evalúe el tráfico con las directivas. Las directivas almacenan en caché objetos del grupo de contenido ctx_cg_poc.

Nombre de directiva de almacenamiento en caché integrado Regla de directiva
_cachevpnStaticObjects HTTP.REQ.URL.SET_TEXT_MODE (IGNORECASE) .CONTAINS_INDEX (“ctx_file_extensions”) .BETNY (101,150)
_cachetCPvpnStaticObjects HTTP.REQ.URL.ENDSWITH(“.css”)
_cacheocvpnStaticObjects HTTP.REQ.URL.ENDSWITH(“.pdf”)
_cachewfstaticoObjects HTTP.REQ.URL.ENDSWITH(“.js”)
- MaynoCacheReq HTTP.RES.HEADER (“Content-Type”) .CONTIENE (“application/x-javascript”)
- Nochacherest TRUE