Configuración predeterminada para la caché integrada

La función de caché integrada de Citrix ADC proporciona directivas integradas con configuraciones predeterminadas, así como configuraciones iniciales para el grupo de contenido predeterminado. La información de esta sección define los parámetros para las directivas integradas y el grupo de contenido predeterminado.

Directivas predeterminadas de almacenamiento en caché

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

Puede reemplazar estas directivas integradas con una directiva definida por el usuario vinculada a un banco de directivas de sustitución de tiempo de solicitud o sustitución de tiempo de respuesta.

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

Ver directivas predeterminadas

Los nombres de directiva integrados comienzan con un guión bajo (_). 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 reemplazar las siguientes directivas integradas de tiempo de solicitud configurando nuevas directivas y vinculándolas al punto de procesamiento de anulación de tiempo de solicitud. En las directivas siguientes, 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 tiempo de respuesta.

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

No almacenar en caché una respuesta para una solicitud que utiliza cualquier 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 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

Establezca una acción MAY_NOCACHE para una solicitud con los siguientes valores de encabezado: Cookie, Authorization, Proxy-Authorization o una solicitud que contenga el encabezado NTLM o Negotiate.

El nombre de la directiva es _PersonalizeReq. 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 reemplazar las siguientes directivas predeterminadas de tiempo de respuesta configurando nuevas directivas y vinculándolas al punto de procesamiento de anulación de tiempo de respuesta.

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

  1. No almacene en caché las respuestas HTTP a menos que sean de 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 de Accept-Encoding.

    El módulo de compresión inserta el encabezado Vary: Accept_Encoding. El nombre de esta expresión es _UncacheaLevaryRes. 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 su valor de encabezado Cache-Control es No-Cache, No-Store o Private, o si el encabezado 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. Responde en caché si el encabezado Cache-Control tiene uno de los siguientes valores: Public, Debe-Revalidate, Proxy-Revalidate, MaxAge, 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 almacenar 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. Respuestas de caché que contienen un encabezado Expira.

    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 Content-Type con un valor de Image, elimine las cookies del encabezado y almacene 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   HTTP.RES.HEADER(“Set-Cookie2”).EXISTS

Restricciones a las directivas predeterminadas

No puede reemplazar las siguientes directivas integradas de tiempo de solicitud 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 para una solicitud si la longitud de la URL de la solicitud HTTP más el nombre de host supera los 1744 bytes.
  3. No almacenar en caché una respuesta para una solicitud que contiene un encabezado If-Match.
  4. No almacene en caché una solicitud que contenga un encabezado If-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 reemplazar las siguientes directivas integradas de tiempo de respuesta. Estas directivas se evalúan en el orden en que se enumeran:

  1. No almacene en caché las respuestas que tengan un código de estado de respuesta HTTP 201, 202, 204, 205 o 206.
  2. No almacene en caché las respuestas que tengan un código de estado de respuesta HTTP 4xx, con las excepciones de los códigos de estado 403, 404 y 410.
  3. No almacene las respuestas si el tipo de respuesta es FIN terminado o la respuesta no tiene uno de los siguientes atributos: Content-Length o Transfer-Encoding: Chunked.
  4. No almacene en caché la respuesta 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 Citrix ADC proporciona un grupo de contenido predefinido denominado grupo de contenido predeterminado. Para obtener información detallada, consulte la tabla Configuración predeterminada del grupo de contenido.