Optimisez la configuration d'Internet Information Services (IIS) pour résoudre les lenteurs de chargement des sites web et éviter les échecs de téléchargement de fichiers. Définir une stratégie de cache améliore la vitesse de réponse du site, tandis que l'ajustement de la limite maximale de taille de requête pour les applications ASP (AspMaxRequestEntityAllowed) permet le téléchargement de fichiers volumineux.
Cas d'utilisation
Améliorer les performances : Définissez une stratégie de cache à long terme pour les ressources statiques rarement mises à jour, telles que les images et les fichiers CSS et JavaScript. Cela réduit le nombre de requêtes adressées au serveur et accélère le chargement des pages.
Prendre en charge les téléchargements de fichiers volumineux : Ajustez la limite de taille de requête pour les applications ASP afin de répondre aux besoins métier, tels que le téléchargement de vidéos ou de documents de grande taille.
Portée
Responsabilité liée aux produits tiers : Alibaba Cloud n'offre aucune garantie concernant les performances, la fiabilité ou le fonctionnement des produits tiers, tels qu'IIS, mentionnés dans cette rubrique.
Compatibilité des versions : Les étapes décrites dans cette rubrique sont principalement basées sur IIS 6.0. Dans les versions IIS 7.0 et ultérieures, certains éléments de l'interface utilisateur, noms de service (tels que
Windows Activation Service) et le fichier de configuration (MetaBase.xml) peuvent différer. Adaptez les étapes à votre environnement spécifique.Limite de requête ASP : Le paramètre « Maximum Requesting Entity Body Limit » affecte uniquement les applications ASP et ne s'applique pas aux autres types d'applications web.
Installer le service IIS pour Windows (facultatif)
Sur le bureau du serveur, cliquez sur Start > Control Panel.
Définissez l'affichage par petites icônes, puis cliquez sur Default Programs > Programs And Features.
Dans le volet de navigation de gauche, cliquez sur Turn Windows Features On Or Off.
Dans la boîte de dialogue Windows Features, sélectionnez Internet Information Services.
Cliquez sur OK et attendez la fin de l'installation.
Configurer la stratégie de cache de contenu
Objectif : Configurez les en-têtes de réponse HTTP pour indiquer aux navigateurs ou aux serveurs proxy d'utiliser leur cache local pendant une période spécifiée sans redemander les ressources au serveur.
Désactiver le cache globalement (pour le contenu dynamique)
Cette méthode désactive la mise en cache pour tout le contenu du site web par défaut. Elle garantit que les utilisateurs reçoivent les dernières données à chaque visite, ce qui est idéal pour les sites dynamiques dont le contenu change fréquemment.
Ouvrez IIS Manager en saisissant
inetmgrdans la boîte de dialogue Run.Dans le volet Connections à gauche, cliquez avec le bouton droit sur le site cible et sélectionnez Properties.
Dans la boîte de dialogue Properties, cliquez sur l'onglet HTTP Headers.
Sélectionnez Enable Content Expiration, puis choisissez Expire Immediately.
Cliquez sur OK pour enregistrer.
Définir la mise en cache pour des répertoires ou fichiers spécifiques (pour les ressources statiques)
Cette méthode définit une durée de cache longue pour les répertoires contenant des ressources statiques telles que des images et des fichiers CSS et JS. Elle peut améliorer considérablement la vitesse de chargement.
Dans IIS Manager, développez l'arborescence de répertoires du site cible.
Cliquez avec le bouton droit sur le répertoire ou le fichier spécifique pour lequel vous souhaitez définir la mise en cache, tel que le répertoire
images, et sélectionnez Properties.Cliquez sur l'onglet HTTP Headers et sélectionnez Enable Content Expiration.
Sélectionnez Expire After et définissez une durée de cache longue, par exemple 30 jours.
Cliquez sur OK.
Utiliser un caractère générique pour définir des stratégies de cache en masse (avancé)
Cette méthode est utile pour appliquer une stratégie de cache uniforme à des fichiers du même type situés dans différents répertoires, tels que tous les fichiers .jpg.
IIS 6.0 : Il n'est pas recommandé de modifier directement le fichier MetaBase.xml pour implémenter cette fonctionnalité. L'opération est complexe et présente un risque élevé.
IIS 7.0 et versions ultérieures (recommandé) : Utilisez le fichier
web.configpour la configuration. Les éléments<location>et<staticContent>vous permettent de définir une stratégie de cache pour des types de fichiers spécifiques, offrant ainsi une méthode plus sûre et plus flexible.
Ajuster la limite maximale du corps de l'entité de requête ASP
Objectif : Ce paramètre limite la quantité maximale de données qu'un client peut envoyer à une page ASP via la méthode POST. Sa valeur par défaut d'environ 200 Ko peut entraîner l'échec des téléchargements de fichiers volumineux.
Configurer à l'aide de l'interface IIS Manager (recommandé)
Dans IIS Manager, sélectionnez le site cible.
Dans Features View, double-cliquez sur l'icône de la fonctionnalité ASP.
Sur la page de configuration ASP, développez Limits Properties.
-
Modifiez la valeur de Maximum Requesting Entity Body Limit (en octets).
Valeur par défaut :
200,000(environ 200 Ko)Exemple : Pour prendre en charge le téléchargement de fichiers de 50 Mo, définissez la valeur sur
52,428,800.
Dans le volet Actions à droite, cliquez sur Apply pour enregistrer les modifications.
Modifier directement le fichier de configuration
Arrêtez le service IIS Admin Service.
Sauvegardez le fichier
C:\Windows\System32\inetsrv\MetaBase.xml, puis ouvrez-le avec un éditeur de texte.-
Dans le fichier, recherchez le paramètre
AspMaxRequestEntityAllowedet modifiez sa valeur.Valeur par défaut :
204800(200 Ko)Exemple : Pour prendre en charge le téléchargement de fichiers de 500 Mo, définissez la valeur sur
524,288,000.
Enregistrez et fermez le fichier
MetaBase.xml.
Redémarrer le service pour appliquer la configuration
Après avoir modifié la configuration, vous devez redémarrer le service IIS correspondant pour que les changements prennent effet.
IIS 6.0 : Dans le gestionnaire de services, redémarrez le service IIS Admin Service.
IIS 7.0/8,0 : Dans le gestionnaire de services, redémarrez le service Windows Activation Service.
Vérifier la stratégie de cache
Ouvrez le panneau Network dans les outils de développement de votre navigateur (raccourci clavier : F12).
Accédez au site web et sélectionnez une ressource pour laquelle vous avez configuré la mise en cache, telle qu'une image.
-
Dans la section Headers, vérifiez les Response Headers.
Configuration réussie : Les en-têtes de réponse doivent contenir un champ
Cache-Control: max-age=[seconds]ouExpires: [future date].Expiration immédiate : Les en-têtes de réponse doivent contenir
Cache-Control: no-cacheou un champExpiresavec une valeur correspondant à une date passée.
FAQ
Pourquoi mes modifications de configuration ne prennent-elles pas effet ?
Ce problème survient généralement pour l'une des raisons suivantes. Vérifiez-les dans l'ordre :
-
Redémarrage incorrect du service : Les modifications ne seront appliquées qu'après le redémarrage du service approprié.
Pour IIS 6.0 : Redémarrez le service
IIS Admin Service.Pour IIS 7.0/8,0 : Redémarrez le service
Windows Activation Service.
Remplacement de la configuration : Une configuration plus spécifique remplace vos paramètres globaux. Par exemple, une stratégie de cache définie sur un répertoire spécifique aura toujours la priorité sur la stratégie globale du site.
Cache du navigateur lors de la vérification : Votre navigateur peut servir une réponse obsolète depuis son cache local. Pour obtenir une réponse fraîche directement depuis le serveur, videz le cache de votre navigateur ou activez l'option « Disable cache » dans les outils de développement de votre navigateur pendant les tests.
Pourquoi les téléchargements de fichiers échouent-ils toujours après avoir ajusté la limite de taille de requête ?
Cela se produit généralement parce que votre application web possède sa propre limite de taille de téléchargement, distincte du paramètre au niveau du serveur IIS. Le paramètre AspMaxRequestEntityAllowed dans IIS contrôle uniquement la taille maximale du corps de la requête que le serveur web acceptera. L'application exécutée sur le serveur (par exemple, une application ASP.NET) applique souvent sa propre limite, plus basse. Par exemple, le fichier web.config d'une application ASP.NET peut contenir un paramètre <httpRuntime> qui doit également être modifié.