Installation et configuration de mod_pagespeed sur un serveur cPanel

Testez la vitesse de votre site web et identifiez les problèmes de lenteur

ModPageSpeed est un module développé par Google afin d’améliorer la performance des sites web hébergés sur Apache et Nginx. Voici les étapes nécessaires pour déployer ce module sur un serveur cPanel/WHM:

  1. Installation du module mod_pagespeed pour Apache 2.4;
  2. Configuration globale de mod_pagespeed;
  3. Configuration de mod_pagespeed pour les hôtes virtuels;
  4. Configuration des filtres PageSpeed.
  5. Configuration d’un CDN avec ModPagespeed;
  6. Activation de la console;
  7. Gestion de la cache;

Sans plus tarder, procédons à l’installation.

1. Installation du module mod_pagespeed

Le module d’installation de mod_pagespeed pour cPanel/WHM est dérivé d’un module initialement développé par Apache. Pour débuter, ouvrez une session SSH sur votre serveur web cPanel.

Installez le paquet ea-apache24-mod_pagespeed à l’aide de Yum:

sudo yum install ea-apache24-mod_pagespeed

Accédez ensuite au panneau de contrôle WHM de votre serveur. Cliquez sur EasyApache 4 depuis la barre de menu.

Enable EasyApache 4 PageSpeed Module

Cliquez sur Customize pour modifier votre profil EasyApache actuel. Dans la colonne de gauche, sélectionnez Apache Modules. Utilisez le filtre de recherche pour repérer le module PageSpeed puis activez-le:

EasyApache 4 PageSpeed Module

Notez que dans ma capture d’écran, le module était déjà activé. Sélectionnez ensuite Review depuis la colonne de gauche et cliquez sur Provision tout au bas de la page.

Une fois l’installation du module PageSpeed complétée, redémarrez le service HTTP Server.

2. Configuration globale de mod_pagespeed

Faîtes une copie de sauvegarde du fichier de configuration globale de PageSpeed:

cp /etc/apache2/conf.modules.d/456_pagespeed.conf /etc/apache2/conf.modules.d/456_pagespeed.conf.backup

Éditez ensuite le fichier de configuration:

vi /etc/apache2/conf.modules.d/456_pagespeed.conf

Désactiver ModPagespeed globalement. Il sera ensuite possible de l’activer sur un site web à la fois, ce que nous verrons plus loin. Ajoutez aussi les paramètres suivants identifiés en rouge:

[...]
<IfModule pagespeed_module>
  # Turn on mod_pagespeed. To completely disable mod_pagespeed, you
  # can set this to "off".
ModPagespeed off
ModPagespeedFileCachePath "/var/mod_pagespeed/cache/default/"
ModpagespeedLogDir /var/log/pagespeed/default/
ModPagespeedMessageBufferSize 100000
ModPagespeedEnableCachePurge on
[...]

Sauvegardez le fichier de configuration puis quittez l’éditeur. Redémarrez le service Apache:

systemctl restart httpd

Si vous exécutez cette procédure sur un serveur de production, vérifiez que tous les sites web fonctionnent normalement.

Pour voir la liste complète des paramètres de configuration, cliquez ici.

3. Configuration de mod_pagespeed pour les hôtes virtuels

À moins d’héberger un seul site web sur le serveur, il préférable d’activer ModPagespeed sur une base individuelle. Cela permet d’utiliser des configurations compatibles et optimales avec chaque site web.

Sur un serveur cPanel, il est important de ne pas modifier les fichiers de configuration d’Apache se trouvant sous « /etc/apache2/conf » et « /etc/apache2/conf.d ». Les fichiers qui s’y trouvent sont générés dynamiquement par cPanel.

Afin d’activer ModPagespeed pour un hôte virtuel, vous devez d’abord déterminer de quelle façon vous souhaitez l’activer. Voici quel fichier de configuration vous devrez créer selon ce que votre choix:

DescriptionHôtes virtuelsRépertoire et fichier de configuration
ModPagespeed sur un
seul hôte virtuel
Avec SSL/etc/apache2/conf.d/userdata/ssl/2_4/utilisateur/domaine/pagespeed.conf
Sans SSL/etc/apache2/conf.d/userdata/std/2_4/utilisateur/domaine/pagespeed.conf
ModPagespeed sur tous les hôtes
virtuels d’un utilisateur
Avec SSL/etc/apache2/conf.d/userdata/ssl/2_4/utilisateur/pagespeed.conf
Sans SSL/etc/apache2/conf.d/userdata/std/2_4/utilisateur/pagespeed.conf

Créez le fichier de configuration en vous assurant de remplacer « utilisateur » et « domaine » par leurs valeurs respectives. Pour ce tutoriel, nous activerons Pagespeed sur un seul hôte virtuel avec SSL:

vi /etc/apache2/conf.d/userdata/ssl/2_4/utilisateur/domaine/pagespeed.conf

Voici la configuration suggérée:

ModPagespeed on
ModPagespeedFileCachePath "/var/mod_pagespeed/cache/domaine/"
ModPagespeedEnableFilters combine_css,prioritize_critical_css,rewrite_javascript,combine_javascript,defer_javascript,extend_cache,resize_rendered_image_dimensions

Sauvegardez le fichier de configuration puis quittez l’éditeur. Il est maintenant nécessaire de regénérer les fichiers de configuration d’Apache:

/usr/local/cpanel/scripts/rebuildhttpdconf

Redémarrez ensuite Apache:

systemctl restart httpd

Assurez-vous ensuite que votre site web fonctionne normalement. Si vous rencontrez des problèmes avec les scripts Javascript, désactiver les filtres rewrite_javascript, combine_javascript et defer_javascript. À chaque modification, assurez-vous de regénérer les fichiers de configuration.

Afin de vérifier le bon fonctionnement de ModPagespeed, inspectez le code source d’une page web de votre site. Recherchez-y le mot-clé « pagespeed » et vous devriez en trouver quelques instances. Par exemple:

<script type="text/javascript" src="/pagespeed_static/js_defer.I4cHjq6EEP.js"></script>

Notez que l’optimisation de votre site web se fera de façon graduelle. L’optimisation d’images par exemple, n’est pas réalisée en temps réelle. Les images optimisées sont placées en cache (/var/mod_pagespeed/cache). Éventuellement, le nom des images seront remplacées dans le code HTML de vos pages par les images optimisées.

4. Configuration des filtres Pagespeed

Il existe une multitude de filtres ainsi que des paramètres qui permettent un réglage précis de ModPagespeed. Certains filtres vont même jusqu’à convertir et / ou optimiser les images de votre site web. Il existe même un filtre permettant de charger des images « lazy load ».

Pour consulter la liste complète des filtres, cliquez ici.

5. Configuration d’un CDN avec ModPagespeed

Si vous utilisez un réseau de distribution de contenu, aussi connu sous le terme anglophone « Content Delivery Network », vous pouvez configurer PageSpeed pour l’utiliser.

Pour intégrer votre CDN avec PageSpeed, ajoutez ces paramètres au fichier de configuration de l’hôte virtuel (voir l’étape#3):

ModPagespeedAllow all
ModPagespeedEnableFilters rewrite_domains
ModPagespeedDomain domaine.com
ModPagespeedDomain votre.cdn.com

Remplacez « domaine.com » par le domaine de votre site web et « votre.cdn.com » par l’adresse de votre CDN. Regénérez la configuration:

/usr/local/cpanel/scripts/rebuildhttpdconf
systemctl restart httpd

Les fichiers générés par PageSpeed seront alors chargés par l’entremise de votre réseau de distribution de contenu (CDN).

6. Activation de la console

La Console PageSpeed permet de consulter des statistiques mais aussi de vider la cache. Afin d’activer la console, insérez le contenu suivant au fichier de configuration créé à l’étape #3:

ModPagespeedStatistics on
ModPagespeedStatisticsLogging on
ModpagespeedLogDir /var/log/pagespeed/domaine/
<Location /pagespeed_admin>
  AuthType Basic
  AuthName "Restricted Area"
  AuthUserFile /home/utilisateur/pagespeed/.htpasswd
  Require valid-user
  SetHandler pagespeed_admin
</Location>

Afin de protéger la console, il est nécessaire de créer un fichier contenant la liste des utilisateurs et des mots de passe. L’emplacement de ce fichier est défini par le paramètre « AuthUserFile ». Voici comment créer un utilisateur nommé « admin »:

mkdir /home/utilisateur/pagespeed
htpasswd -c /home/utilisateur/pagespeed/.htpasswd admin

Saisissez ensuite le mot de passe lorsque demandé. Pour ajouter d’autres utilisateurs au même fichier, utilisez la même command « htpasswd » en omettant le paramètre « -c ». Celui sert à créer le fichier.

Une fois les changements complétés, regénérez la configuration puis redémarrez le service Apache:

/usr/local/cpanel/scripts/rebuildhttpdconf
systemctl restart httpd

Vous pouvez maintenant accéder à la console PageSpeed à l’adresse https://www.domaine.com/pagespeed_admin/ avec le nom d’utilisateur « admin » et le mot de passe choisi:

Console PageSpeed Admin

Notez que l’activation des statistiques peut ralentir le serveur. Il est conseillé de désactiver celle-ci si elle ne sont pas nécessaires. Vous serez tout de même en mesure d’accéder à la console:

ModPagespeedStatistics off
ModPagespeedStatisticsLogging off

6. Gestion de la cache Pagespeed

Si vous effectuez des changements à votre site web et que ceux-ci ne semblent pas s’appliquer, vous devrez alors vider la cache.

Méthode #1: Suppression de la cache complète par ligne de commande

Cette méthode nécessite un accès « root » ce qui en limite l’utilisation. Il suffit de créer un fichier vide:

touch /var/mod_pagespeed/cache/domaine/cache.flush
systemctl restart httpd

Avec cette méthode, il peut y avoir un court délai avant que la cache ne soit vidée.

Méthode #2: Utilisation d’une commande « PURGE »

Afin que cette méthode soit possible, vous devez debord modifier le fichier de configuration global:

vi /etc/apache2/conf.modules.d/456_pagespeed.conf

Ajoutez ensuite cette ligne:

ModPagespeedPurgeMethod PURGE

Redémarrez Apache:

systemctl restart httpd

Il est maintenant possible d’envoyer une commande « HTTP PURGE » à l’adresse que vous souhaitez supprimer de la cache. Par exemple:

curl --request PURGE 'https://www.domaine.com/page'

Il aussi possible de vider la cache pour un répertoire entier:

curl --request PURGE 'https://www.domaine.com/page/*'

Pour d’autres exemples, cliquez ici.

Méthode #3: Utilisation de la console PageSpeed

Afin qu’il soit possible d’utiliser la console PageSpeed pour vider la cache, le paramètre ModPagespeedPurgeMethod doit être ajouté au fichier de configuration global, tel que décrit à la méthode précédente.

Depuis la console PageSpeed, cliquez sur « Caches > Purge Cache ». À cet endroit, vous serez en mesure de supprimer partiellement ou entièrement la cache:

Vider la cache PageSpeed à l'aide de la console

À partir de ce point, vous êtes en mesure d’expérimenter avec différents filtres et configurations afin d’obtenir la meilleure performance qui soit. Si vous avez des questions ou suggestions pour améliorer ce tutoriel, n’hésitez pas à laisser votre commentaire ci-après!

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.