Mise en cache intégrée

Le cache intégré fournit un stockage en mémoire sur l’appliance Citrix ADC et fournit du contenu Web aux utilisateurs sans nécessiter un aller-retour vers un serveur d’origine. Pour le contenu statique, le cache intégré nécessite peu de configuration initiale. Après avoir activé la fonction de cache intégré et effectué une configuration de base (par exemple, déterminer la quantité de mémoire de l’appliance Citrix ADC que le cache est autorisé à utiliser), le cache intégré utilise des stratégies intégrées pour stocker et servir des types spécifiques de contenu statique, y compris des pages Web simples et des fichiers image. Vous pouvez également configurer le cache intégré pour stocker et diffuser du contenu dynamique généralement marqué comme ne pouvant pas être mis en cache par les serveurs Web et d’applications (par exemple, les enregistrements de base de données et les cotations boursières).

Remarque : Le terme Cache intégré peut être utilisé de manière interchangeable avec AppCache ; notez que du point de vue de la fonctionnalité, les deux termes signifient la même chose.

Lorsqu’une demande ou une réponse correspond à la règle (expression logique) spécifiée dans une stratégie intégrée ou une stratégie que vous avez créée, l’appliance Citrix ADC exécute l’action associée à la stratégie. Par défaut, toutes les stratégies stockent les objets mis en cache dans le groupe de contenu par défaut et les récupèrent à partir du groupe de contenu par défaut, mais vous pouvez créer vos propres groupes de contenu pour différents types de contenu.

Pour permettre à l’appliance Citrix ADC de rechercher des objets mis en cache dans un groupe de contenus, vous pouvez configurer des sélecteurs qui correspondent aux objets mis en cache par rapport aux expressions, ou spécifier des paramètres pour rechercher des objets dans le groupe de contenus. Si vous utilisez des sélecteurs (recommandés par Citrix), configurez-les en premier, de sorte que vous puissiez spécifier des sélecteurs lorsque vous configurez des groupes de contenu. Ensuite, configurez les groupes de contenu que vous souhaitez ajouter afin qu’ils soient disponibles lorsque vous configurez les stratégies. Pour terminer la configuration initiale, créez des banques de stratégies en liant chaque stratégie à un point de liaison global ou à un serveur virtuel, ou à une étiquette pouvant être appelée à partir d’autres banques de stratégies.

Vous pouvez régler les performances du cache intégré à l’aide de méthodes telles que le préchargement des objets mis en cache avant leur expiration. Pour gérer la gestion des données mises en cache une fois qu’elles quittent l’appliance Citrix ADC, vous pouvez configurer les en-têtes liés au cache qui sont insérés dans les réponses. Le cache intégré peut également servir de proxy de transfert pour d’autres serveurs de cache.

Remarque : La mise en cache intégrée nécessite une certaine familiarité avec les requêtes et les réponses HTTP. Pour plus d’informations sur la structure des données HTTP, consultez En-têtes HTTP en direct à l’adresse"<http://livehttpheaders.mozdev.org/>."

Fonctionnement du cache d’intégration

Le cache intégré surveille les demandes HTTP et SQL qui circulent via l’appliance Citrix ADC et compare les demandes avec les stratégies stockées. Selon le résultat, la fonction de cache intégrée recherche la réponse dans le cache ou transmet la demande au serveur d’origine. Pour les requêtes HTTP, la fonction de cache intégrée peut également servir du contenu partiel du cache en réponse à des demandes de plage d’octets unique et multi-parties.

Les données mises en cache peuvent être compressées si le client accepte le contenu compressé. Vous pouvez configurer les durées d’expiration d’un groupe de contenus et expirer sélectivement les entrées d’un groupe de contenus.

Les données fournies à partir du cache intégré sont un accès au cache et les données fournies à partir de l’origine sont une absence de cache, comme décrit dans le tableau suivant.

Type de mouvement Spécifications
Cache touché Réponses fournies par l’appliance Citrix ADC à partir du cache, y compris : objets statiques, par exemple, fichiers image et pages Web statiques, 200 pages OK, 203 pages Réponses non autorisées, 300 pages à choix multiples, 301 pages déplacées de façon permanente, 302 pages trouvées, 304 pages non modifiées, Ces réponses sont connues comme des réponses positives. L’appliance Citrix ADC met également en cache les réponses négatives suivantes : 307 pages de redirection temporaire, 403 pages interdites, 404 pages introuvables, 410 pages disparues. Pour améliorer encore les performances, vous pouvez configurer l’appliance Citrix ADC pour mettre en cache d’autres types de contenu.
Miss cache stockable Pour une absence de cache stockable, l’appliance Citrix ADC récupère la réponse du serveur d’origine et stocke la réponse dans le cache avant de la servir au client.
Miss de cache non stockable Un défaut de cache non stockable est inapproprié pour la mise en cache. Par défaut, toute réponse contenant les codes d’état suivants est une erreur de cache non stockable : 201, 202, 204, 205, 206 codes d’état, Tous les codes 4xx, sauf 403, 404 et 410, 5xx codes d’état

Remarque Pour intégrer la mise en cache dynamique à votre infrastructure d’application, utilisez l’API NITRO pour émettre des commandes de cache à distance. Par exemple, vous pouvez configurer des déclencheurs qui expirent les réponses mises en cache lorsqu’une table de base de données est mise à jour.

Pour assurer la synchronisation des réponses mises en cache avec les données sur le serveur d’origine, vous configurez les méthodes d’expiration. Lorsque l’appliance Citrix ADC reçoit une demande correspondant à une réponse expirée, elle actualise la réponse du serveur d’origine.

Remarque Citrix vous recommande de synchroniser les heures sur l’appliance Citrix ADC et les serveurs principaux.

Fonctionnement du cache dynamique

La mise en cache dynamique évalue les requêtes HTTP et les réponses basées sur des paires paramètre-valeur, des chaînes, des modèles de chaîne ou d’autres données. Par exemple, supposons qu’un utilisateur recherche le bogue 31231 dans une application de rapport de bogue. Le navigateur envoie la demande suivante au nom de l’utilisateur :

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

. . .

Dans cet exemple, les requêtes GET pour cette application de rapport de bogue contiennent toujours les paramètres suivants :

  • IssuePage
  • RecordID
  • Modèle
  • TableId

Les requêtes GET ne mettent pas à jour ou ne modifient pas les données. Vous pouvez donc configurer ces paramètres dans les stratégies de mise en cache et les sélecteurs, comme suit :

  • Vous configurez une stratégie de mise en cache qui recherche la chaîne mybugreportingsystem et la méthode GET dans les requêtes HTTP. Cette stratégie dirige les demandes de correspondance vers un groupe de contenu pour les bogues.
  • Dans le groupe de contenu pour les bogues, vous configurez un sélecteur d’accès qui correspond à diverses paires de paramètres, y compris IssuePage, RecordId, etc.

Remarque : qu’un navigateur peut envoyer plusieurs requêtes GET en fonction d’une action utilisateur. Voici une série de trois requêtes GET distinctes qu’un navigateur émet lorsqu’un utilisateur recherche un bogue basé sur un identifiant de bogue.

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

Pour répondre à ces demandes, plusieurs réponses sont envoyées au navigateur de l’utilisateur, et la page Web que l’utilisateur voit est un assemblage des réponses.

Si un utilisateur met à jour un rapport de bogue, les réponses correspondantes dans le cache doivent être actualisées avec les données du serveur d’origine. L’application de rapport de bogue émet des requêtes HTTP POST lorsqu’un utilisateur met à jour un rapport de bogue. Dans cet exemple, vous configurez les éléments suivants pour vous assurer que les demandes POST déclenchent l’invalidation dans le cache :

  • Stratégie d’invalidation au moment de la requête qui recherche la chaîne mybugreportingsystem et la méthode de requête POST HTTP, et dirige les requêtes correspondantes vers le groupe de contenu pour les rapports de bogue.
  • Sélecteur d’invalidation pour le groupe de contenu pour les rapports de bogue qui expire le contenu mis en cache en fonction du paramètre RecordID. Ce paramètre apparaît dans toutes les réponses, de sorte que le sélecteur d’invalidation peut expirer tous les éléments pertinents du cache.

L’extrait suivant montre une demande POST qui met à jour l’exemple de rapport de bogue.

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. . .

Lorsque l’appliance Citrix ADC reçoit cette demande, il effectue les opérations suivantes :

  • Correspond à la demande avec une stratégie d’invalidation.
  • Recherche le groupe de contenu nommé dans la stratégie.
  • Applique le sélecteur d’invalidation pour ce groupe de contenus et expire toutes les réponses correspondant à RecorDid=31231.

Lorsqu’un utilisateur émet une nouvelle demande pour ce rapport de bogue, l’appliance Citrix ADC se rend sur le serveur d’origine pour obtenir des copies mises à jour de toutes les réponses associées à l’instance de rapport, stocke les réponses dans le groupe de contenu et les envoie au navigateur de l’utilisateur, qui réassemble le rapport et affiche ça.

Configurer le cache intégré

Pour utiliser le cache intégré, vous devez installer la licence et activer la fonctionnalité. Après avoir activé le cache intégré, l’appliance Citrix® Citrix ADC® met automatiquement en cache les objets statiques tels que spécifiés par les stratégies intégrées et génère des statistiques sur le comportement du cache. (Les stratégies intégrées ont un trait de soulignement dans la position initiale du nom de la stratégie.)

Même si les stratégies intégrées conviennent à votre situation, vous pouvez modifier les attributs globaux. Par exemple, vous pouvez modifier la quantité de mémoire de l’appliance Citrix ADC allouée au cache intégré.

Si vous souhaitez observer le fonctionnement du cache avant de modifier les paramètres, reportez-vous à la section “Affichage des objets mis en cache et des statistiques de cache.”

Remarque Le cache Citrix ADC est un magasin en mémoire qui est purgé lorsque vous redémarrez l’appliance.

Pour installer la licence de cache intégrée

Une licence de cache intégrée est requise. Pour plus d’informations sur les licences, reportez-vous à la rubrique obtention de licences.

Obtenez un code de licence auprès de Citrix, accédez à l’interface de ligne de commande et connectez-vous.

Dans l’interface de ligne de commande, copiez le fichier de licence dans le dossier /nsconfig/license.

Redémarrez l’appliance Citrix ADC à l’aide de la commande suivante :

reboot

Pour activer la mise en cache intégrée : lorsque vous activez la mise en cache intégrée, l’appliance Citrix ADC commence à mettre en cache les réponses du serveur. Si vous n’avez configuré aucune stratégie ou groupe de contenu, les stratégies intégrées stockent les objets mis en cache dans le groupe de contenu par défaut.

À l’invite de commandes, tapez l’une des commandes suivantes pour activer ou désactiver la mise en cache intégrée :

‘activer la fonction Ns’ IC’

Pour configurer les attributs globaux pour la mise en cache

Les attributs globaux s’appliquent à toutes les données mises en cache. Vous pouvez spécifier la quantité de mémoire Citrix ADC allouée au cache intégré, l’insertion d’en-tête via, un critère permettant de vérifier qu’un objet mis en cache doit être servi, la longueur maximale d’un corps POST autorisé dans le cache, l’opportunité de contourner l’évaluation des stratégies pour les requêtes HTTP GET et une action à effectuer lorsqu’une stratégie ne peut pas être évaluée.

La capacité de mémoire cache est limitée uniquement par la mémoire de l’appliance matérielle. En outre, tout moteur de paquets (le concentrateur de distribution central de toutes les requêtes TCP entrantes) de l’appliance nCore Citrix ADC est conscient des objets mis en cache par d’autres moteurs de paquets dans l’appliance nCore Citrix ADC.

Remarque : lorsque la limite de mémoire globale par défaut est définie sur 0 et que la fonction de mise en cache intégrée (IC) est activée, l’appliance ne cache aucun objet. Pour la mise en cache, vous devez configurer explicitement la limite de mémoire globale. Toutefois, si vous activez l’option « set aaa parameter enableStaticPageCaching », il y aura une mémoire par défaut configurée dans l’appliance. Cette mémoire est insuffisante pour mettre en cache des objets volumineux et il est donc nécessaire d’attribuer une limite de mémoire plus élevée à IC. Vous pouvez effectuer cette opération en configurant la commande « set cache parameter —memLimit ». Le nouveau paramètre n’est appliqué qu’après avoir enregistré la configuration et redémarré l’appliance.

Vous pouvez modifier la limite de mémoire globale configurée pour les objets de mise en cache. Toutefois, lorsque vous mettez à jour la limite de mémoire globale à une valeur inférieure à la valeur existante (par exemple, de 10 Go à 4 Go), si une quantité de mémoire supérieure (supérieure à 4 Go) est déjà utilisée pour mettre en cache des objets, Citrix ADC continue d’utiliser cette quantité de mémoire.

Cela signifie que même si la limite de mise en cache intégrée est configurée à une certaine valeur, la limite réelle utilisée peut être plus élevée. Cette mémoire excessive est cependant libérée lorsque les objets sont supprimés du cache.

La sortie de la commande show cache parameter indique la valeur configurée (limite d’utilisation de la mémoire) et la valeur réelle utilisée (limite d’utilisation de la mémoire (valeur active)).

À l’invite de commandes, tapez :

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

Pour activer la mise en cache intégrée à l’aide de l’interface graphique :

Accédez à Système > Paramètres, cliquez sur Configurer les fonctionnalités de base, puis sélectionnez Mise en cache intégrée.

Pour configurer les paramètres globaux pour la mise en cache à l’aide de l’interface graphique :

Accédez à Optimisation > Mise en cache intégrée, cliquez sur Modifier les paramètres du cache et configurez les paramètres globaux pour la mise en cache.

Pour configurer un groupe de contenu intégré, un jeu de modèles et des stratégies pour le Cache intégré :

L’appliance Citrix ADC comprend une configuration intégrée de mise en cache que vous pouvez utiliser pour mettre en cache du contenu. La configuration se compose d’un groupe de contenu appelé ctx_cg_poc, d’un jeu de motifs appelé ctx_file_extensions et d’un ensemble de stratégies de cache intégrées. Dans le groupe de contenu ctx_cg_poc, seuls les objets d’une taille inférieure ou inférieure à 500 Ko sont mis en cache. Le contenu est mis en cache pendant 86000 secondes et la limite de mémoire pour le groupe de contenus est de 512 Mo. Le jeu de motifs est un tableau indexé d’extensions de fichiers communes pour la correspondance de type de fichier.

Le tableau suivant répertorie les stratégies intégrées de mise en cache. Par défaut, les stratégies ne sont liées à aucun point de liaison. Vous devez les lier à un point de liaison si vous souhaitez que l’appliance Citrix ADC évalue le trafic par rapport aux stratégies. Les stratégies mettent en cache les objets du groupe de contenu ctx_cg_poc.

Nom de la stratégie de mise en cache intégrée Règle de stratégie
_cacheVPNStaticObjects HTTP.REQ.URL.SET_TEXT_MODE(IGNORECASE).CONTAINS_INDEX(“ctx_file_extensions”).BETWEEN(101,150)
_cacheTCPVPNStaticObjects HTTP.REQ.URL.ENDSWITH(“.css”)
_cacheOCVPNStaticObjects HTTP.REQ.URL.ENDSWITH(“.pdf”)
_cacheWFStaticObjects HTTP.REQ.URL.ENDSWITH(“.js”)
_mayNoCacheReq HTTP.RES.HEADER(“Content-Type”).CONTAINS(“application/x-javascript”)
_noCacheRest VRAI