Nginx (moteur-x) est un serveur HTTP open source et performant, un proxy inverse et un serveur proxy IMAP/POP3. Les caractéristiques exceptionnelles de Nginx sont la stabilité, un ensemble de fonctionnalités riche, une configuration simple et une faible consommation de mémoire. Ce didacticiel montre comment créer un package Nginx .deb pour Ubuntu 16.04 à partir d'une source dans laquelle le module Google PageSpeed est compilé.
PageSpeed est un module de serveur Web développé par Google pour accélérer le temps de réponse du site Web, optimiser le code HTML renvoyé et réduire le temps de chargement des pages. Les fonctionnalités de ngx_pagespeed incluent :
- Optimisation des images :suppression des métadonnées, redimensionnement dynamique, recompression.
- Minification CSS et JavaScript, concaténation, inlining et outlining.
- Inlining de petites ressources.
- Reporter le chargement de l'image et du JavaScript.
- Réécriture HTML.
- Extension de la durée de vie du cache.
voir plus https://developers.google.com/speed/pagespeed/module/.
Prérequis
- Serveur Ubuntu 16.04 - 64 bits
- privilèges racine
Ce que nous allons faire dans ce tutoriel :
- Installez les packages prérequis.
- Installation de nginx avec ngx_pagespeed.
- Test.
Installer les dépendances de compilation
sudo apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip
Installation de nginx avec ngx_pagespeed
Étape 1 - Ajouter le référentiel nginx
Créez un nouveau fichier de référentiel /etc/apt/sources.list.d/nginx.list avec vim.
vim /etc/apt/sources.list.d/nginx.list
Là, vous ajoutez les lignes :
deb http://nginx.org/packages/ubuntu/ xenial nginx deb-src http://nginx.org/packages/ubuntu/ xenial nginx
Enregistrez le fichier et quittez l'éditeur.
Ajoutez la clé et mettez à jour le dépôt :
sudo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABF5BD827BD9BF62
sudo apt-get update
Étape 2 - Télécharger nginx 1.10 depuis le référentiel ubuntu
Créez un nouveau répertoire pour les fichiers source nginx et téléchargez les sources nginx avec apt :
cd ~
mkdir -p ~/new/nginx_source/
cd ~/new/nginx_source/
apt-get source nginx
Parfois, une erreur s'affiche : "les packages ne peuvent pas être authentifiés".
Vous pouvez le résoudre en tapant la commande ci-dessous :
rm -rf /var/lib/apt/lists/
apt-get update
Ensuite, installez toutes les dépendances pour créer le package nginx.
apt-get build-dep nginx
Étape 3 - Télécharger Pagespeed
Créez un nouveau répertoire pour PageSpeed et téléchargez la source PageSpeed.
Dans ce tutoriel, nous utiliserons pagespeed 1.11.33.
mkdir -p ~/new/ngx_pagespeed/
cd ~/new/ngx_pagespeed/
ngx_version= 1.11.33.3
wget https://github.com/pagespeed/ngx_pagespeed/archive/release-${ngx_version}-beta.zip
unzip release-${ngx_version}-beta.zip
cd ngx_pagespeed-release-${ngx_version}-beta/
wget https://dl.google.com/dl/page-speed/psol/${ngx_version}.tar.gz
tar -xzvf ${ngx_version}.tar.gz
Étape 4 - Configurer nginx pour construire avec Pagespeed
Allez dans le répertoire 'nginx_source' et éditez le fichier 'rules' avec vim.
cd ~/new/nginx_source/nginx-1.10.1/debian/
vim rules
Ajoutez la nouvelle ligne sous "COMMON_CONFIGURE_ARGS" :
--add-module=../../ngx_pagespeed/ngx_pagespeed-release-1.11.33.3-beta \
Enregistrez et quittez.
Étape 5 :Créez le package nginx Ubuntu et installez-le
Accédez au répertoire source de nginx et créez nginx à partir de la source avec la commande dpkg-buildpackage :
cd ~/new/nginx_source/nginx-1.10.1/
dpkg-buildpackage -b
Le package nginx Ubuntu sera enregistré sous ~/new/ngix_source/. Une fois la construction du paquet terminée, veuillez regarder dans le répertoire :
cd ~/new/ngix_source/
ls
Et installez nginx et modules deb avec la commande dpkg.
dpkg -i *.deb
Tests
Étape 1 - Tester avec la commande Nginx
Exécutez nginx -V pour vérifier que le module ngx_pagespeed a été intégré à nginx.
nginx -V
Étape 2 - Test avec la commande Curl
Accédez au répertoire de configuration de nginx.
cd /etc/nginx/conf.d/
et modifiez le fichier de configuration de l'hôte virtuel par défaut.
vim default.conf
Collez la configuration ci-dessous pour activer ngx_pagespeed.
pagespeed on;
# Needs to exist and be writable by nginx. Use tmpfs for best performance.
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 ~ "^/pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon$" { }
Enregistrez et quittez.
Ensuite, testez le fichier de configuration nginx et assurez-vous qu'il n'y a pas d'erreur :
nginx -t
Redémarrez nginx :
systemctl restart nginx
Enfin, accédez au serveur Web nginx avec la commande curl :
curl -I 192.168.1.6
Conclusion
Le serveur Web nginx est un serveur http open source stable et rapide qui prend en charge une variété de modules pour l'optimisation de la diffusion de contenu. L'un de ces modules est le 'module PageSpeed' qui est développé par google. Contrairement à apache, les modules nginx ne sont pas chargeables dynamiquement, vous devez donc sélectionner les modules souhaités lorsque vous créez le package nginx.