introduction
ngx_pagespeed, ou simplement pagespeed, est un module Nginx conçu pour optimiser automatiquement votre site en réduisant la taille de ses ressources et, partant, le temps nécessaire au navigateur pour le chargement des clients. Si vous ne le connaissez pas déjà, consultez son site officiel.
Cet article vous guidera à travers l’installation et la configuration du module pagespeed pour Nginx. Il est important de savoir que Nginx ne prend pas en charge le "Chargement dynamique de modules" disponible sur d’autres serveurs Web tels que Apache. Nginx ne prenant pas en charge cette fonctionnalité, vous devez créer Nginx à partir de la source pour ajouter le module.
Avoir votre propre package personnalisé présente un inconvénient: vous êtes seul responsable de sa mise à jour lorsqu’il existe une nouvelle version. Tenez-en compte lorsque vous pesez le pour et le contre de l’utilisation de ngx_pagespeed.
Conditions préalables
Ce guide a été écrit pour CentOS 7. Un lien: / community / tutorials / comment-ajouter-ngx_pagespeed-à-nginx-on-ubuntu-14-04 [version Ubuntu 14.04] et un lien: / community / tutorials / comment-ajouter-ngx_pagespeed-to -nginx-on-debian-8 [version Debian 8] sont également disponibles.
Avant de suivre ce didacticiel, assurez-vous de remplir les conditions préalables suivantes:
-
Une gouttelette CentOS 7
-
Un utilisateur sudo non root (consultez la page Initial Server Setup avec CentOS 7 pour plus de détails.)
Sauf indication contraire, toutes les commandes nécessitant des privilèges root dans ce tutoriel doivent être exécutées en tant qu’utilisateur non root avec des privilèges sudo.
Étape 1 - Télécharger la source et ses dépendances
Commençons par nous assurer que nous disposons de tous les logiciels nécessaires à la compilation et aux tests de Nginx. Veuillez exécuter la commande:
sudo yum install wget curl unzip gcc-c++ pcre-devel zlib-devel
Créez ensuite un dossier dans votre répertoire personnel pour télécharger le paquet source pour Nginx:
mkdir ~/custom-nginx
Accédez à ce répertoire nouvellement créé:
cd ~/custom-nginx
Ensuite, téléchargez le paquet source Nginx dans ce répertoire à l’adresse its site officiel. Actuellement, la dernière version est la 1.8.0 et peut être téléchargée à l’aide de la commande suivante:
sudo wget http://nginx.org/download/nginx-1.8.0.tar.gz
Après cela, extrayez le paquet nouvellement téléchargé avec la commande:
sudo tar zxvf nginx-1.8.0.tar.gz
Pour confirmer que nous sommes sur la même page, listez le contenu du dossier + ~ / custom-nginx
:
ls ~/custom-nginx
Le résultat devrait ressembler à ceci:
Output of ls ~/custom-nginxnginx-1.8.0 nginx-1.8.0.tar.gz
Comme vous pouvez le constater, la version du package source de Nginx est la 1.8.0 au moment de la rédaction de ce tutoriel. Pour commencer à ajouter le module ngx_pagespeed, vous devez d’abord accéder au dossier + modules +
dans le dossier extrait + nginx-1.8.0 +
:
cd nginx-1.8.0/src/http/modules/
Dans ce répertoire, téléchargez la dernière archive source ngx_pagespeed à partir de son référentiel Github à l’aide de la commande suivante:
sudo wget https://github.com/pagespeed/ngx_pagespeed/archive/master.zip
Une fois le téléchargement terminé, extrayez-le avec l’utilitaire + unzip +
comme ceci:
sudo unzip master.zip
Cela créera un nouveau répertoire appelé + ngx_pagespeed-master +
dans votre répertoire + ~ / custom-nginx / nginx-1.8.0 / src / http / modules / +
. Pour plus de commodité, renommez ce répertoire simplement + ngx_pagespeed +
avec la commande:
sudo mv ngx_pagespeed-master ngx_pagespeed
Allez dans le nouveau répertoire + ngx_pagespeed +
:
cd ngx_pagespeed
À partir de là, téléchargez les bibliothèques d’optimisation de pageSpeed (psol) nécessaires à la compilation:
sudo wget https://dl.google.com/dl/page-speed/psol/1.9.32.6.tar.gz
Si le lien vers l’archive psol ne fonctionne pas au moment où vous lisez cet article, ignorez simplement cette étape. Si vous manquez les bibliothèques lors de la compilation lors des étapes suivantes, vous verrez une erreur avec les instructions mises à jour pour obtenir le package ultérieurement.
Enfin, extrayez le paquet psol dans le répertoire + ~ / custom-nginx / nginx-1.4.6 / debian / modules / ngx_pagespeed +
:
sudo tar -xzvf 1.9.32.6.tar.gz
Étape 2 - Configurez la source et compilez-la
À ce stade, vous êtes prêt à configurer la source Nginx et à inclure le module pagespeed. Accédez au répertoire parent de la source Nginx:
cd ~/custom-nginx/nginx-1.8.0/
Là, lancez la configuration de la source avec la commande:
sudo ./configure --add-module=/home//custom-nginx/nginx-1.8.0/src/http/modules/ngx_pagespeed/ --user=nobody --group=nobody --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid
L’option de configuration la plus importante de ce qui précède est + - add-module = / home // nginx-custom / nginx-1.8.0 / src / http / modules / ngx_pagespeed / +
. Cela garantit que le module pagespeed fera partie de la compilation Nginx. Assurez-vous de remplacer votre utilisateur par ce chemin.
Pour plus de commodité, nous avons personnalisé quelques autres paramètres, tels que l’emplacement des fichiers journaux et l’utilisateur / le groupe sous lequel le serveur doit s’exécuter. Pour plus d’informations sur ce qui peut être personnalisé, veuillez consulter la documentation pour the options de compilation.
Une fois la configuration terminée, lancez la compilation avec la commande:
sudo make
Cela prendra jusqu’à dix minutes en fonction des ressources de votre droplet. Après cela, vous pouvez installer le logiciel avec la commande:
sudo make install
Vous pouvez trouver votre Nginx personnalisé installé dans le répertoire + / usr / local / nginx +
. Pour rendre cela encore plus pratique, créons deux liens symboliques. Tout d’abord pour les fichiers de configuration:
sudo ln -s /usr/local/nginx/conf/ /etc/nginx
Cette commande vous permettra de trouver les fichiers de configuration dans le répertoire + / etc / nginx / +
où résident habituellement les fichiers de configuration.
Vous devez également créer un lien symbolique vers le fichier binaire principal dans le répertoire + / usr / sbin / +
afin de pouvoir le trouver plus facilement et l’inclure dans le script de démarrage. Cela sera également nécessaire pour le script de démarrage que nous utiliserons plus tard. Pour cela, lancez la commande:
sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
Étape 3 - Créer le script de démarrage
Le processus d’installation précédent prend en charge certaines tâches banales, telles que la création du groupe d’utilisateurs nobody requis, sous lequel Nginx s’exécutera. Cependant, vous devez toujours créer manuellement le script de démarrage. Heureusement, pour Nginx sur CentOS 7, il en existe déjà un sur le site nginx.com.
Commencez par créer un nouveau fichier dans le répertoire + / etc / init.d / +
:
sudo nano /etc/init.d/nginx
Ensuite, accédez à la page https://www.nginx.com/resources/wiki/start/topics/examples/redhatnginxinit/, copiez le script et collez-le dans ce nouveau fichier.
Enfin, rendez ce script exécutable en exécutant la commande:
sudo chmod +x /etc/init.d/nginx
Après cela, vous pouvez démarrer Nginx pour la première fois avec la commande:
sudo service nginx start
Pour vous assurer que Nginx démarre et s’arrête à chaque fois avec Droplet, ajoutez-le aux niveaux d’exécution par défaut à l’aide de la commande:
sudo chkconfig nginx on
Étape 4 - Activer le module Pagespeed
Vous avez maintenant Nginx installé. L’étape suivante consiste à activer le module ngx_pagespeed.
Avant d’activer le module, vous devez créer un dossier dans lequel il mettra en cache les fichiers de votre site Web:
sudo mkdir -p /var/ngx_pagespeed_cache
Assurez-vous de changer la propriété de ce dossier en utilisateur Nginx afin que le serveur Web puisse y stocker des fichiers:
sudo chown -R nobody:nobody /var/ngx_pagespeed_cache
Ouvrez ensuite le fichier de configuration principal de Nginx + nginx.conf +
dans votre éditeur de texte préféré, comme ceci:
sudo nano /etc/nginx/nginx.conf
Dans ce fichier, ajoutez les lignes suivantes au bloc + serveur +
et enregistrez les modifications:
/etc/nginx/nginx.conf
##
# Pagespeed main settings
pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;
# Ensure requests for pagespeed optimized resources go to the pagespeed
# handler and no extraneous headers get set.
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon" { }
Vous pouvez ajouter ces lignes n’importe où dans le bloc, mais dans notre exemple, nous l’ajoutons à la fin du bloc.
Voici à quoi devrait ressembler le fichier + / etc / nginx / nginx.conf
:
/etc/nginx/nginx.conf
...
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
...
Assurez-vous également d’ajouter des lignes de configuration de vitesse de page au fichier de bloc every additional + server +
que vous pourriez avoir.
Enfin, redémarrez le serveur Nginx pour que les modifications prennent effet:
sudo service nginx restart
Étape 5 - Testez l’installation
Pour vérifier si le module ngx_pagespeed a été installé avec succès, exécutez le fichier binaire Nginx comme suit:
sudo /usr/sbin/nginx -V
Si l’installation a réussi, vous devriez voir le module ngx_pagespeed répertorié parmi les autres arguments personnalisés:
Outputnginx version: nginx/1.8.0
...
configure arguments: --add-module=/home//custom-nginx/nginx-1.8.0/src/http/modules/ngx_pagespeed/
...
Ce qui précède ne signifie pas encore que la vitesse de rotation des pages est activée et fonctionne pour votre site. Pour confirmer cela, vous pouvez utiliser + curl +
, un outil et une bibliothèque pour les transferts d’URL côté client. Vérifiez l’en-tête + X-Page-Speed +
comme ceci:
curl -I -p http://localhost| grep X-Page-Speed
Si le module ngx_pagespeed fonctionne correctement, vous devriez le voir dans le résultat avec sa version:
OutputX-Page-Speed: 1.9.32.6-7321
Si vous ne voyez pas cet en-tête, assurez-vous que vous avez activé la vitesse de transmission des pages conformément aux instructions de l’étape précédente.
Conclusion
C’est ainsi que vous pouvez créer Nginx avec un module personnalisé, vitesse de page. Ces étapes sont valides pour tout autre module qui n’est pas déjà disponible dans Nginx. En outre, le processus d’installation d’un package à partir de la source est similaire à celui d’autres packages logiciels que vous devrez peut-être personnaliser. N’oubliez pas que vous devrez maintenir et réinstaller ces paquets vous-même lorsqu’une nouvelle version sera disponible.