Aujourd’hui, nous configurons le contrôle de la mise en cache du navigateur sur les serveurs apache 2 dédiés ou les serveurs VPS communs . La mise en cache est un excellent outil pour réduire la consommation de ressources du serveur, l’utilisation de la bande passante et fournir une expérience utilisateur plus rapide aux visiteurs. Pour vous familiariser avec les concepts de mise en cache, il suffit de consulter notre ‘Qu’est-ce que la mise en cache? ‘ tutoriel.
Contrôle en amont
Cet article couvre tous les serveurs Apache 2 exécutant les modules Mod_expires et mod_headers Apache. Cela inclut, mais sans s’y limiter, les serveurs dédiés traditionnels et les serveurs Cloud VPS exécutant un certain nombre de distributions Linux différentes:
- Serveurs CentOS 7 * gérés par cœur
- Serveurs CentOS 6* gérés par cœur
- Serveurs CentOS 7 cPanel entièrement gérés
- Serveurs CentOS 6 cPanel entièrement gérés
- Serveurs Linux CentOS 7 Plesk Onyx 17 entièrement gérés
L’article suppose une connaissance des concepts d’administration système de base suivants :
- Connexions SSH et navigation de base de l’environnement shell de ligne de commande Linux standard
- Ouverture, édition et enregistrement de fichiers dans un éditeur système choisi (c’est-à-dire Vim,Nano, etc…).
- Une certaine familiarité avec la tuyauterie de ligne de commande via la redirection d’E/S Linux
Vérifier les modules
Nos serveurs incluent généralement à la fois les modules mod_expires et mod_headers nécessaires au contrôle du cache du navigateur. Cependant, avant de configurer les directives, nous devons d’abord nous assurer que les modules sont installés et qu’Apache 2 est prêt à accepter les directives. La vérification est simple. Nous utiliserons la commande apachectl -M pour répertorier les modules Apache installés tout en canalisant la sortie via la commande grep module_name pour filtrer les résultats jusqu’à afficher uniquement les modules avec les module_name fournies, aime ainsi:
Vérification de mod_headers (également appelée Headers_module) en copiant et en collant la commande suivante.
apachectl -M | grep header
… retournera :
headers_module (shared)
Vérification de mod_expires (également appelé module expire) en copiant et collant la commande suivante.
apachectl -M | grep expires
… retournera :
expires_module (shared)
Ces modules doivent être présents dans la sortie lors de l’exécution de la commande. S’ils n’apparaissent pas dans la sortie, il sera simplement vide, ce qui indique que les modules ne sont pas installés. Si les modules sont manquants, nous devrons les installer avant de pouvoir continuer.
Configuration Directives
Nous pouvons utiliser l’exemple suivant d’une configuration générique qui sert à réduire la pression sur les ressources du serveur en prolongeant la durée du cache des fichiers statiques courants. Ces types de fichiers ne changent généralement pas entre les visites. Ainsi, ils n’ont pas besoin d’être téléchargés à chaque visite. Les navigateurs modernes sont équipés pour accepter les instructions des serveurs Web qui fournissent des suggestions sur la durée pendant laquelle le contenu doit être mis en cache. Cet exemple fonctionne bien pour la plupart des sites. Toutefois, vous devrez peut-être ajouter/supprimer des types de fichiers ou ajuster la durée de vie en fonction de vos besoins pour votre contenu particulier.
<IfModule mod_expires.c>
# Turn on the module.
ExpiresActive on
# Set the default expiry times.
ExpiresDefault "access plus 2 days"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType text/css "now plus 1 month"
ExpiresByType image/ico "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
ExpiresByType text/html "access plus 600 seconds"
</IfModule>
Explication de chaque directive
Ce sont des balises d’ouverture et ne traiteront les directives entre celles-ci que si le module, mod_expires, est installé sur le serveur.
<IfModule mod_expires.c> ... </IfModule>
Téléchargez tous les fichiers uniquement si le cache n’a pas été accédé depuis plus de 2 jours.
ExpiresDefault "access plus 2 days"
Téléchargez les fichiers uniquement si le fichier mis en cache n’a pas été accédé depuis plus de 1 mois. Cela couvre les types de fichiers jpg, jpeg, gif, png, css, javascript, flash, ico et x-icon.
ExpiresDefault "access plus 2 days"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType text/css "now plus 1 month"
ExpiresByType image/ico "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
Téléchargez les fichiers uniquement si la copie mise en cache n’a pas été consultée dans les 10 minutes.
ExpiresByType text/html "access plus 600 seconds"
Vous pouvez trouver une explication plus robuste de ces directives et de tout ce que expires_module offre dans apache mod_expires documents en ligne.
implémentation
Maintenant que nous comprenons comment ces directives peuvent être configurées, nous devons décider de notre méthode de mise en œuvre. Il existe généralement deux méthodes d’application pour ces directives. Nous les classons comme portables ou méthodes include.
Méthode portable
La méthode portable utilise des fichiers .htaccess pour gérer les répertoires affectés par les paramètres mod_expires configuration que nous sommes. Ceux-ci sont gérés comme toutes les autres modifications de fichier .htaccess.
- SSH/FTP vers le serveur
- Localisez le répertoire dans lequel la mise en cache du navigateur doit être activée.
- Modifiez le fichier .htaccess dans ce répertoire ou créez-en un s’il n’y en a pas déjà un.
- Ajoutez les directives nécessaires à partir de la section Directives de configuration ci-dessus.
- Enregistrez les modifications dans le fichier.
- fait.
Il y a un petit avertissement de goulot d’étranglement associé aux fichiers .htaccess. Cette mise en garde n’est pas spécifique à mod_expires et constitue une alerte Apache globale incluant les fichiers .htaccess en général. Pour que les fichiers .htaccess fonctionnent, Apache doit analyser chaque répertoire menant à un fichier ciblé en recherchant et en appliquant tous les fichiers .htaccess qu’il trouve en cours de route. Cela peut créer un goulot d’étranglement d’E/S sur certaines configurations de serveur. Nous vous recommandons d’utiliser la méthode Include sur tous les serveurs Cloud VPS pour éviter ce type de problème.
La méthode,Include,
Contrairement à la méthode portable, la méthode Include tire parti du système Apache includes. Apache lit uniquement les fichiers include au démarrage, ce qui empêche le goulot d’étranglement d’E / S décrit ci-dessus dans la section Méthode portable.
Il existe généralement deux façons d’utiliser la méthode Include : globalement ou par site Web. L’une ou l’autre méthode nécessite la localisation et la modification des fichiers include corrects sur le serveur. Les fichiers corrects à modifier dépendent à la fois du logiciel de distribution et de gestion de serveur. Nous discuterons des emplacements corrects pour les deux méthodes sur les différents serveurs Liquid Web CentOS que nous prenons en charge et répertoriés dans la section Vérification en amont ci-dessus.
Global comprend
L’application globale des directives mod_expires est simple. Cela aura pour effet d’activer les directives souhaitées sur l’ensemble du serveur, affectant chaque site fonctionnant via Apache.
Serveurs CentOS 6 et 7 gérés par cœur
1. Créez un fichier nommé expires.conf dans /etc/httpd/conf.d/ en tapant la commande suivante:
vim /etc/httpd/conf.d/expire.conf
2. Ajoutez les directives nécessaires au fichier et enregistrez les modifications. Le fichier doit ressembler à ce qui suit :
<IfModule mod_expires.c>
# Turn on the module.
ExpiresActive on
# Set the default expiry times.
ExpiresDefault "access plus 2 days"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType text/css "now plus 1 month"
ExpiresByType image/ico "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
ExpiresByType text/html "access plus 600 seconds"
</IfModule>
3. Pour terminer, reload Apache pour que le serveur voit les changements:
Service httpd reload
Serveurs CentOS 6 et 7 cPanel entièrement gérés
1. Créez le nom de fichier pre_virtualhost_global.conf dans /usr/local/apache/conf/includes/ s’il n’existe pas déjà.
vim /usr/local/apache/conf/includes/pre_virtualhost_global.conf
2. Ajoutez les directives nécessaires au bas du fichier et enregistrez les modifications. Votre fichier peut contenir des directives supplémentaires dans ce fichier, mais le bas doit ressembler à ceci :
<IfModule mod_expires.c> # Turn on the module. ExpiresActive on # Set the default expiry times. ExpiresDefault "access plus 2 days" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType text/javascript "access plus 1 month" ExpiresByType application/javascript "access plus 1 month" ExpiresByType application/x-shockwave-flash "access plus 1 month" ExpiresByType text/css "now plus 1 month" ExpiresByType image/ico "access plus 1 month" ExpiresByType image/x-icon "access plus 1 month" ExpiresByType text/html "access plus 600 seconds" </IfModule>
3. Redémarrez le service Apache:
/scripts/restartsrv_apache
Si vous exécutez EasyApache 4: Redémarrez le service Apache PHP-FPM
/scripts/restartsrv_apache_php_fpm
.
Serveurs Linux CentOS 7 Plesk Onyx 17 entièrement gérés
Plesk fournit un système d’inclure et de modèle robuste pour la modification des entrées d’hôte virtuel sur une base d’hôte virtuel individuel. Ces opérations sont effectuées dans les fichiers suivants :
/var/www/vhosts/system/example.com/conf/vhost_ssl.conf
La structure de répertoires ici devrait déjà exister. Cependant, ces fichiers vhost.conf et vhost_ssl.conf n’existent pas par défaut et devront être créés.
1. Créez les
fichiers include nécessaires: HTTP Virtual Host:
touch /var/www/vhosts/system/example.com/conf/vhost.conf
Hôte virtuel HTTPS :
touch /var/www/vhosts/system/example.com/conf/vhost_ssl.conf
2. Modifiez à la fois vhost.conf et vhost_ssl.conf en appliquant les directives mod_expires nécessaires. Lorsque vous avez terminé, chaque fichier doit ressembler à ce qui suit :
<IfModule mod_expires.c> # Turn on the module. ExpiresActive on # Set the default expiry times. ExpiresDefault "access plus 2 days" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType text/javascript "access plus 1 month" ExpiresByType application/javascript "access plus 1 month" ExpiresByType application/x-shockwave-flash "access plus 1 month" ExpiresByType text/css "now plus 1 month" ExpiresByType image/ico "access plus 1 month" ExpiresByType image/x-icon "access plus 1 month" ExpiresByType text/html "access plus 600 seconds" </IfModule>
3. Demandez à Plesk de reconstruire la configuration du site en question.
/usr/local/psa/admin/sbin/httpdmng --reconfigure-domain example.com
4. Restart Apache Service:
service httpd restart
Les modèles plesk et les systèmes includes sont très robustes et permettent l’intégration de nombreuses autres directives Apache courantes. Consultez la documentation en ligne de Plesk Onyx pour en savoir plus sur l’exploitation de ses capacités
Merci de votez pour cet article :