Paramètres par défaut pour le cache intégré

La fonctionnalité de cache intégré Citrix ADC fournit des stratégies intégrées avec des paramètres par défaut ainsi que des paramètres initiaux pour le groupe de contenu par défaut. Les informations de cette section définissent les paramètres des stratégies intégrées et du groupe de contenu par défaut.

Stratégies de mise en cache par défaut

Le cache intégré a des stratégies intégrées. L’appliance Citrix ADC évalue les stratégies dans un ordre particulier, comme indiqué dans les sections suivantes.

Vous pouvez remplacer ces stratégies intégrées par une stratégie définie par l’utilisateur qui est liée à une banque de stratégies de remplacement au moment de la demande ou de remplacement au moment de la réponse.

Remarque Si vous avez configuré des stratégies avant la version 9.0 et que vous avez spécifié le paramètre -PecdeFrules lors de la liaison des stratégies, elles sont automatiquement affectées aux points de liaison de dépassement pendant la migration.

Afficher les stratégies par défaut

Les noms de stratégie intégrés commencent par un trait de soulignement (_). Vous pouvez afficher les stratégies intégrées à partir de la ligne de commande et de la console d’administration à l’aide de la commande show cache policy.

Stratégies de demande par défaut

Vous pouvez remplacer les stratégies de temps de demande intégrées suivantes en configurant de nouvelles stratégies et en les liant au point de traitement de remplacement de l’heure de la demande. Dans les stratégies suivantes, notez que l’action MAY_NOCACHE stipule que la transaction est mise en cache uniquement lorsqu’il existe une directive CACHE configurée par l’utilisateur ou intégrée au moment de la réponse.

Les stratégies suivantes sont liées à l’étiquette de stratégie _reqBuiltinDefaults. Ils sont répertoriés par ordre de priorité.

Ne mettez pas en cache une réponse pour une requête qui utilise une méthode autre que GET.

Le nom de la stratégie est _nonGetReq. Ce qui suit est la règle de stratégie :

!HTTP.REQ.METHOD.eq(GET)

Définissez une action NOCACHE pour une requête dont la valeur d’en-tête contient If-Match ou If-Unmodified-Since.

Le nom de la stratégie est _advancedConditionalReq. Ce qui suit est la règle de stratégie :

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

Définissez une action MAY_NOCACHE pour une requête avec les valeurs d’en-tête suivantes : Cookie, Authorization, Proxy-authorization ou une requête contenant l’en-tête NTLM ou Negotiate.

Le nom de la stratégie est _personalizedReq. Ce qui suit est la règle de stratégie :

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

Stratégies de réponse par défaut

Vous pouvez remplacer les stratégies de temps de réponse par défaut suivantes en configurant de nouvelles stratégies et en les liant au point de traitement de remplacement de temps de réponse.

Les stratégies suivantes sont liées à l’étiquette de stratégie _resBuiltinDefaults et sont évaluées dans l’ordre dans lequel elles sont répertoriées :

  1. Ne mettez pas en cache les réponses HTTP sauf si elles sont de type 200, 304, 307, 203 ou si les types sont compris entre 400 et 499 ou entre 300 et 302.

    Le nom de la stratégie est _uncacheableStatusRes. Ce qui suit est la règle de stratégie :

    !((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. Ne mettez pas en cache une réponse HTTP si elle a un en-tête Vary avec une valeur autre que Accept-Encoding.

    Le module de compression insère l’en-tête Vary : Accept_Encoding. Le nom de cette expression est _uncacheableVaryRes. Ce qui suit est la règle de stratégie :

    ((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. Ne mettez pas en cache une réponse si sa valeur d’en-tête Cache-Control est No-Cache, No-Store ou Private, ou si l’en-tête Cache-Control n’est pas valide.

    Le nom de la stratégie est _uncacheableCacheControlRes. Ce qui suit est la règle de stratégie :

    ((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. Réponses du cache si l’en-tête Cache-Control a l’une des valeurs suivantes : Public, Must-Revalidate, Proxy-Revalidate, Max-Age, S-Maxage.

    Le nom de la stratégie est _cacheableCacheControlRes. Ce qui suit est la règle de stratégie :

    ((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. Ne mettez pas en cache les réponses contenant un en-tête Pragma.

    Le nom de la stratégie est _uncacheablePragmaRes. Ce qui suit est la règle de stratégie :

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

  6. Réponses de cache contenant un en-tête Expires.

    Le nom de la stratégie est _cacheableExpiryRes. Ce qui suit est la règle de stratégie :

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

  7. Si la réponse contient un en-tête Content-Type avec la valeur Image, supprimez tous les cookies dans l’en-tête et mettez en cache.

    Le nom de la stratégie est _imageRes. Ce qui suit est la règle de stratégie :

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

    Vous pouvez configurer le groupe de contenu suivant pour qu’il fonctionne avec cette stratégie :

    add cache contentgroup nocookie -group -removeCookies YES

  8. Ne mettez pas en cache une réponse contenant un en-tête Set-Cookie.

    Le nom de la stratégie est _personalizedRes. Ce qui suit est la règle de stratégie :

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

Restrictions sur les stratégies par défaut

Vous ne pouvez pas remplacer les stratégies de temps de demande intégrées suivantes par des stratégies définies par l’utilisateur.

Ces stratégies sont répertoriées par ordre de priorité.

  1. Ne mettez pas en cache les réponses si la requête HTTP correspondante manque une méthode GET ou POST.
  2. Ne mettez pas en cache les réponses pour une requête si la longueur de l’URL de la requête HTTP plus le nom d’hôte dépasse 1744 octets.
  3. Ne mettez pas en cache une réponse pour une requête contenant un en-tête If-Match.
  4. Ne mettez pas en cache une requête contenant un en-tête If-Unmodified-Since.

Remarque Ceci est différent de l’en-tête If-Modified-Since.

  1. Ne mettez pas en cache une réponse si le serveur ne définit pas d’en-tête d’expiration.

Vous ne pouvez pas remplacer les stratégies de temps de réponse intégrées suivantes. Ces stratégies sont évaluées dans l’ordre dans lequel elles sont répertoriées :

  1. Ne mettez pas en cache les réponses dont le code d’état de réponse HTTP est 201, 202, 204, 205 ou 206.
  2. Ne mettez pas en cache les réponses qui ont un code d’état de réponse HTTP 4xx, à l’exception des codes d’état 403, 404 et 410.
  3. Ne mettez pas en cache les réponses si le type de réponse est FIN terminé ou si la réponse ne possède pas l’un des attributs suivants : Content-Length ou Transfer-Encoding: Chunked.
  4. Ne mettez pas en cache la réponse si le module de mise en cache ne peut pas analyser son en-tête Cache-Control.

Paramètres initiaux pour le groupe de contenus par défaut

Lorsque vous activez la mise en cache intégrée pour la première fois, l’appliance Citrix ADC fournit un groupe de contenu prédéfini nommé Groupe de contenu par défaut. Pour plus d’informations, voir le tableau Paramètres de groupe de contenu par défaut.