ADC

Ajustes predeterminados de la memoria caché integrada

La función de caché integrada de NetScaler proporciona directivas integradas con configuraciones predeterminadas e iniciales para el grupo de contenido predeterminado. La información de esta sección define los parámetros de las directivas integradas y del grupo de contenido predeterminado.

Directivas de almacenamiento en caché predeterminadas

La memoria caché integrada tiene directivas integradas. El dispositivo NetScaler evalúa las directivas en un orden determinado, como se explica en las siguientes secciones.

Puede anular estas directivas integradas con una directiva definida por el usuario que esté vinculada a un banco de directivas de anulación del tiempo de solicitud o de anulación del tiempo de respuesta.

Nota: Si configuró las directivas antes de la versión 9.0 y especificó el parámetro -PrecedeDefRules al vincular las directivas, se asignarán automáticamente a los puntos de enlace con tiempo de anulación durante la migración.

Ver directivas predeterminadas

Los nombres de las directivas integradas comienzan con un carácter de subrayado (_). Puede ver las directivas integradas desde la línea de comandos y la consola administrativa mediante el comando show cache policy.

Directivas de solicitud predeterminadas

Puede anular las siguientes directivas integradas de tiempo de solicitud configurando nuevas directivas y vinculándolas al punto de procesamiento de anulación del tiempo de solicitud. En las siguientes directivas, tenga en cuenta que la acción MAY_NOCACHE estipula que la transacción se almacena en caché solo cuando hay una directiva CACHE configurada por el usuario o integrada en el momento de la respuesta.

Las siguientes directivas están enlazadas a la etiqueta de directiva _ReqBuiltInDefaults. Se enumeran en orden de prioridad.

No almacene en caché la respuesta de una solicitud que utilice ningún método que no sea GET.

El nombre de la directiva es _NonGetReq. La siguiente es la regla de directiva:

!HTTP.REQ.METHOD.eq(GET)

Establezca una acción NOCACHE para una solicitud con un valor de encabezado que contenga If-Match o If-Unmodified-Since.

El nombre de la directiva es _AdvancedConditionalReq. La siguiente es la regla de directiva:

HTTP.REQ.HEADER("If-Match").EXISTS || HTTP.REQ.HEADER("If-Unmodified-Since").EXISTS

Defina una acción MAY_NOCACHE para una solicitud con los siguientes valores de encabezado: cookie, autorización, autorización de proxy o una solicitud que contenga el encabezado NTLM o Negotiate.

El nombre de la directiva es _PersonalizedReq. La siguiente es la regla de directiva:

HTTP.REQ.HEADER("Cookie").EXISTS || HTTP.REQ.HEADER("Authorization").EXISTS || HTTP.REQ.HEADER("Proxy-Authorization").EXISTS || HTTP.REQ.IS_NTLM_OR_NEGOTIATE

Directivas de respuesta predeterminadas

Puede anular las siguientes directivas de tiempo de respuesta predeterminadas configurando nuevas directivas y vinculándolas al punto de procesamiento de anulación del tiempo de respuesta.

Las siguientes directivas están enlazadas a la etiqueta de directiva _ResBuiltInDefaults y se evalúan en el orden en que aparecen:

  1. No almacene en caché las respuestas HTTP a menos que sean del tipo 200, 304, 307, 203 o si los tipos están entre 400 y 499 o entre 300 y 302.

    El nombre de la directiva es _UncacheableStatusRes. La siguiente es la regla de directiva:

    !((HTTP.RES.STATUS.EQ(200)) || (HTTP.RES.STATUS.EQ(304)) || (HTTP.RES.STATUS.BETWEEN(400,499)) || (HTTP.RES.STATUS.BETWEEN(300, 302)) || (HTTP.RES.STATUS.EQ(307))|| (HTTP.RES.STATUS.EQ(203)))

  2. No almacene en caché una respuesta HTTP si tiene un encabezado Vary con un valor distinto a Accept-Encoding.

    El módulo de compresión inserta el encabezado Vary: Accept_Encoding. El nombre de esta expresión es _uncacheableVaryRes. La siguiente es la regla de directiva:

    ((HTTP.RES.HEADER("Vary").EXISTS) && ((HTTP.RES.HEADER("Vary").INSTANCE(1).LENGTH > 0) || (!HTTP.RES.HEADER("Vary").STRIP_END\_WS.SET_TEXT_MODE(IGNORECASE).eq("Accept-Encoding"))))

  3. No almacene en caché una respuesta si el valor del encabezado de Cache-Control es No-Cache, No-Store o Private, o si el encabezado de Cache-Control no es válido.

    El nombre de la directiva es _uncacheableCacheControlRes. La siguiente es la regla de directiva:

    ((HTTP.RES.CACHE\_CONTROL.IS\_PRIVATE) || (HTTP.RES.CACHE\_CONTROL.IS\_NO\_CACHE) || (HTTP.RES.CACHE\_CONTROL.IS\_NO\_STORE) || (HTTP.RES.CACHE\_CONTROL.IS\_INVALID))

  4. Guarde en caché las respuestas si el encabezado Cache-Control tiene uno de los siguientes valores: Public, Must-Revalidate, Proxy-Revalidate, Max-Age, S-Maxage.

    El nombre de la directiva es _cacheableCacheControlRes. La siguiente es la regla de directiva:

    ((HTTP.RES.CACHE_CONTROL.IS_PUBLIC) || (HTTP.RES.CACHE_CONTROL.IS_MAX_AGE) || (HTTP.RES.CACHE_CONTROL.IS_MUST_REVALIDATE) || (HTTP.RES.CACHE_CONTROL.IS_PROXY_REVALIDATE) || (HTTP.RES.CACHE_CONTROL.IS_S_MAXAGE))

  5. No almacene en caché las respuestas que contengan un encabezado de Pragma.

    El nombre de la directiva es _UncacheablePragmares. La siguiente es la regla de directiva:

    HTTP.RES.HEADER("Pragma").EXISTS

  6. Almacene en caché las respuestas que contengan un encabezado Expires.

    El nombre de la directiva es _cacheableExpiryRes. La siguiente es la regla de directiva:

    HTTP.RES.HEADER("Expires").EXISTS

  7. Si la respuesta contiene un encabezado de tipo contenido con el valor Imagen, elimina las cookies del encabezado y guárdalo en caché.

    El nombre de la directiva es _ImageRes. La siguiente es la regla de directiva:

    HTTP.RES.HEADER("Content-Type").SET_TEXT_MODE(IGNORECASE).STARTSWITH("image/")

    Puede configurar el siguiente grupo de contenido para que funcione con esta directiva:

    add cache contentgroup nocookie -group -removeCookies YES

  8. No almacene en caché una respuesta que contenga un encabezado Set-Cookie.

    El nombre de la directiva es _ PersonalizedRes. La siguiente es la regla de directiva:

    HTTP.RES.HEADER (“Set-Cookie”) .EXISTS

Restricciones a las directivas predeterminadas

No puede anular las siguientes directivas de tiempo de solicitud integradas con directivas definidas por el usuario.

Estas directivas se enumeran en orden de prioridad.

  1. No almacene en caché ninguna respuesta si la solicitud HTTP correspondiente carece de un método GET o POST.
  2. No almacene en caché ninguna respuesta de una solicitud si la longitud de la URL de la solicitud HTTP más el nombre del host superan los 1744 bytes.
  3. No almacene en caché la respuesta de una solicitud que contenga un encabezado If-Match.
  4. No almacene en caché una solicitud que contenga un encabezado Sif-Unmodified-Since.

Nota: Esto es diferente del encabezado If-Modified-Since.

  1. No almacene en caché una respuesta si el servidor no establece un encabezado de caducidad.

No puede anular las siguientes directivas de tiempo de respuesta integradas. Estas directivas se evalúan en el orden en que aparecen:

  1. No almacene en caché las respuestas que tengan un código de estado de respuesta HTTP de 201, 202, 204, 205 o 206.
  2. No almacene en caché las respuestas que tengan un código de estado de respuesta HTTP de 4xx, con la excepción de los códigos de estado 403, 404 y 410.
  3. No almacene en caché las respuestas si el tipo de respuesta está terminado en FIN o si la respuesta no tiene uno de los siguientes atributos: longitud del contenido o codificación de transferencia: fragmentada.
  4. No almacene la respuesta en caché si el módulo de almacenamiento en caché no puede analizar su encabezado Cache-Control.

Configuración inicial del grupo de contenido predeterminado

Cuando habilita por primera vez el almacenamiento en caché integrado, el dispositivo NetScaler proporciona un grupo de contenido predefinido denominado grupo de contenido predeterminado. Para obtener información detallada, consulte Tabla Configuración de grupo de contenido predeterminada .

Ajustes predeterminados de la memoria caché integrada