ADC

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

La fonctionnalité de cache intégré de NetScaler fournit des stratégies intégrées avec des paramètres par défaut et des paramètres initiaux pour le groupe de contenus 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é comporte des stratégies intégrées. L’appliance NetScaler é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 -precedeDefRules 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 consulter 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 classés par ordre de priorité.

Ne mettez pas en cache une réponse pour une requête utilisant 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 demande avec les valeurs d’en-tête suivantes : Cookie, Authorization, Proxy-Authorization ou une demande 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 possède un en-tête Vary dont la valeur est 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 la valeur de son 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. Mache les réponses si l’en-tête Cache-Control possède 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 qui contiennent 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. Mettez en cache les réponses qui contiennent 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 dont la valeur est Image, supprimez tous les cookies de l’en-tête et mettez-le 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

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 aucune réponse en cache si la requête HTTP correspondante ne possède pas de méthode GET ou POST.
  2. Ne mettez pas en cache les réponses à une demande si la longueur de l’URL de la requête HTTP plus le nom d’hôte dépassent 1744 octets.
  3. Ne mettez pas en cache une réponse à une demande 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 règles 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 dont le code d’état de réponse HTTP est 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 terminé par FIN ou si la réponse ne possède pas l’un des attributs suivants : longueur du contenu ou encodage de transfert : fragmenté.
  4. Ne mettez pas la réponse en cache si le module de mise en cache ne parvient pas à analyser son en-tête Cache-Control.

Paramètres initiaux du groupe de contenus par défaut

Lorsque vous activez la mise en cache intégrée pour la première fois, l’appliance NetScaler fournit un groupe de contenu prédéfini nommé groupe de contenu par défaut. Pour plus d’informations, consultez le tableau des paramètres par défaut du groupe de contenu .

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