5

Si j'active le module IIS Rewrite, le compteur de cache de cache de fichiers n'augmente pas.Est-ce que la réécriture d'URL bloque la mise en cache des fichiers statiques d'IIS?

Je retraçant les grands succès par Analyseur de performances (perfmon.exe/service Web Cache/File Cache Hits)

Si je désactive la réécriture "File Cache Hits" augmente normalement selon l'algorithme de mise en cache IIS.

Le fichier demandé est un fichier html statique dans les deux cas.

La réécriture d'URL bloque-t-elle la mise en cache des fichiers statiques d'IIS?

+1

Dans le Gestionnaire des services Internet (IIS), accédez à Modules and Open Feature. Sur la droite, cliquez sur "View Ordered List". RewriteModule devrait être proche du fond s'il ne l'est pas. – Jamey

Répondre

0

The docs state que oui, IIS réécrire peut empêcher la mise en cache de fichiers.

Interaction avec IIS Sortie Caching

L'URL Rewrite Module contrôle le comportement du cache de sortie IIS afin à:

optimale utilisent la mise en cache de sortie en mode noyau et le mode utilisateur de réponses pour réécrite URL, améliorant ainsi les performances de l'application Web qui utilise le module de réécriture d'URL. Empêcher la mise en cache des réponses , lorsque la logique de mise en cache peut être violée en raison de la réécriture d'URL. Le module contrôle la mise en cache de sortie soit en modifiant certaines propriétés de mise en cache, soit en désactivant complètement la mise en cache. Le module ne peut pas activer la mise en cache de sortie si elle a été désactivée par la configuration IIS ou par tout autre module dans le pipeline IIS. La mise en cache de sortie est contrôlée comme suit:

  1. Le module définit toujours le cache en mode réglage utilisateur VaryByHeader = "HTTP_X_ORIGINAL_URL". Cela garantit que lorsque la mise en cache du mode utilisateur est activée, le module prend en compte l'URL d'origine et construit une clé pour l'entrée de cache. Si un ensemble de règles de réécriture utilise des variables de serveur dont les valeurs sont constantes pendant toute la durée du processus ou proviennent de l'URL demandée, l'ensemble de règles est considéré comme sûr pour la mise en cache de sortie. Cela signifie que l'URL Rewrite Module ne modifie pas la mise en cache existante la politique de toute autre manière que la mise en VaryByHeader comme décrit à l'étape

Les variables serveur suivantes, lorsqu'il est utilisé dans les règles de réécriture, ne cause aucun effet sur la politique de mise en cache de sortie:

"CACHE_URL", "DOCUMENT_ROOT", "http_URL", "HTTP_HOST", "PATH_INFO", "PATH_TRANSLATED", "QUERY_STRING", "REQUEST_FILENAME", "REQUEST_URI", "SCRIPT_FILENAME" , "SCRIPT_NAME", "SCRIPT_TRANSLATED", "UNENCODED_URL", "URL", "URL_PATH_ INFO », "APP_POOL_ID", "APPL_MD_PATH", "APPL_PHYSICAL_PATH", "GATEWAY_INTERFACE", "SERVER_SOFTWARE", "SSI_EXEC_DISABLED"

3.Si un jeu de règles de réécriture utilise une variable de serveur non mentionnée dans la liste ci-dessus, le jeu de règles est considéré comme non sécurisé pour la mise en cache de sortie. Cette signifie que le module de réécriture d'URL désactivera la mise en cache du mode noyau pour toutes les demandes si les URL de demande ont été réécrites ou non. En outre, le module modifie la stratégie de mise en cache pour le cache en mode utilisateur en définissant la propriété de mise en cache varyByValue pour contenir la chaîne concaténée de toutes les valeurs de variables de serveur utilisées dans l'ensemble de règles .

Questions connexes