Comment installer Nginx avec Google PageSpeed sur Ubuntu 20.04

Nginx est un serveur Web gratuit et open-source qui alimente de nombreux sites sur Internet. Il peut être utilisé comme proxy inverse et équilibreur de charge. Il est connu pour ses hautes performances et sa stabilité.

ngx_pagespeed est un module Nginx open-source qui peut être utilisé pour optimiser les performances de ton site Web. Il est développé par Google et réduit le temps de chargement des pages et accélère le temps de réponse du site Web.

Dans ce tutoriel, nous allons te montrer comment compiler ngx_pagespeed en tant que module dynamique avec Nginx sur le serveur Ubuntu 20.04.

Conditions préalables

  • Un serveur fonctionnant sous Ubuntu 20.04.
  • Un nom de domaine valide pointé avec l’IP de ton serveur. Dans ce tutoriel, nous utiliserons le domaine exemple.com.
  • Un mot de passe root est configuré sur le serveur.

Pour commencer

Avant de commencer, tu dois mettre à jour tes paquets système à la dernière version. Tu peux les mettre à jour en exécutant la commande suivante :

apt-get update -y

Une fois que tous les paquets sont installés, tu devras installer certaines dépendances requises sur ton système. Tu peux les installer toutes à l’aide de la commande suivante :

apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 git libpcre3-dev unzip -y

Une fois que tous les paquets sont installés, tu peux passer à l’étape suivante.

Installe le serveur Web Nginx

Ensuite, tu devras installer le serveur Web Nginx sur ton système. Tu peux l’installer avec la commande suivante :

apt-get install nginx -y

Une fois l’installation terminée, tu peux vérifier la version installée de Nginx avec la commande suivante :

nginx -v

Tu devrais voir la version de Nginx dans la sortie suivante :

nginx version: nginx/1.18.0 (Ubuntu)

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Télécharge et compile ngx_pagespeed

Avant de télécharger et de compiler ngx_pagespeed. Tu dois télécharger la source de Nginx dans ton système. Tu peux télécharger le paquet source de Nginx à l’aide de la commande suivante :

Remarque : Assure-toi que la version de Nginx téléchargée correspond à la version de Nginx installée. Ici, la version installée de Nginx est 1.18.0. Tu devras donc télécharger la source Nginx de la version 1.18.0 sur le site Web de Nginx.

wget http://nginx.org/download/nginx-1.18.0.tar.gz

Une fois le téléchargement terminé, extrais le fichier téléchargé avec la commande suivante :

tar -xvzf nginx-1.18.0.tar.gz

Ensuite, télécharge la source de ngx_pagespeed depuis le dépôt Git avec la commande suivante :

git clone https://github.com/apache/incubator-pagespeed-ngx.git

Une fois le téléchargement terminé, change le répertoire pour le répertoire téléchargé et vérifie la version stable avec la commande suivante :

cd incubator-pagespeed-ngx
git checkout latest-stable

Tu devrais obtenir la sortie suivante :

Note: switching to 'latest-stable'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c 

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 11ba8ea54 Update PSOL_BINARY_URL

À partir de la sortie ci-dessus, cat le fichier « PSOL_BINARY_URL » pour voir l’URL de téléchargement de PSOL :

cat PSOL_BINARY_URL

Tu devrais obtenir le résultat suivant :

https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz

Maintenant, exécute la commande suivante pour télécharger PSOL en utilisant l’URL ci-dessus :

wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-x64.tar.gz

Ensuite, extrais le fichier téléchargé avec la commande suivante :

tar -xvzf 1.13.35.2-x64.tar.gz

Ensuite, modifie le répertoire vers la source Nginx et installe toutes les dépendances requises avec la commande suivante :

cd /root/nginx-1.18.0
apt-get build-dep nginx
apt-get install uuid-dev

Ensuite, compile le module ngx_pagespeed avec la commande suivante :

./configure --with-compat --add-dynamic-module=/root/incubator-pagespeed-ngx

Tu devrais obtenir le résultat suivant :

Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + using system zlib library

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx modules path: "/usr/local/nginx/modules"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

Ensuite, exécute la commande suivante pour construire le module Pagespeed :

make modules

Ensuite, copie le module généré dans le répertoire des modules Nginx :

cp objs/ngx_pagespeed.so /usr/share/nginx/modules/

À ce stade, le module ngx_pagespeed est compilé dans ton système. Tu peux maintenant passer à l’étape suivante.

Configure Nginx pour utiliser le module ngx_pagespeed

Ensuite, tu dois configurer Nginx pour utiliser le module ngx_pagespeed. Tout d’abord, modifie le fichier de configuration principal de Nginx et définis le chemin du module ngx_pagespeed :

nano /etc/nginx/nginx.conf

Ajoute la ligne suivante au début du fichier :

load_module modules/ngx_pagespeed.so;

Sauvegarde et clsoe le fichier lorsque tu as terminé.

Ensuite, crée un répertoire pour les caches pagespeed avec la commande suivante :

mkdir -p /var/ngx_pagespeed_cache

Définis la propriété appropriée à l’aide de la commande suivante :

chown -R www-data:www-data /var/ngx_pagespeed_cache

Ensuite, modifie le fichier de configuration de l’hôte virtuel par défaut de Nginx et ajoute la configuration de pagespeed :

nano /etc/nginx/sites-available/default

Remplace toutes les lignes par les lignes suivantes :

server {
     listen 80;
     server_name example.com; 

     root /var/www/html;
     index index.nginx-debian.html index.html index.htm;

     access_log   /var/log/nginx/access.log;
     error_log    /var/log/nginx/error.log;

     location / {
         try_files $uri $uri/ =404;
     }

     pagespeed on;
     pagespeed FileCachePath "/var/ngx_pagespeed_cache/";
     pagespeed RewriteLevel OptimizeForBandwidth;

     location ~ ".pagespeed.([a-z].)?[a-z]{2}.[^.]{10}.[^.]+" {
         add_header "" "";
     }

     location ~ "^/pagespeed_static/" { }
     location ~ "^/ngx_pagespeed_beacon$" { }
pagespeed RewriteLevel CoreFilters;

 }

Sauvegarde et ferme le fichier lorsque tu as terminé. Ensuite, vérifie que Nginx n’a pas d’erreur de syntaxe en utilisant la commande suivante :

nginx -t

Tu devrais obtenir la sortie suivante :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Enfin, redémarre le service Nginx pour appliquer les modifications :

systemctl restart nginx

Tu peux aussi vérifier l’état du service Nginx à l’aide de la commande suivante :

systemctl status nginx

Tu devrais obtenir le résultat suivant :

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-11-26 05:32:23 UTC; 20s ago
       Docs: man:nginx(8)
    Process: 363 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 385 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 386 (nginx)
      Tasks: 3 (limit: 2353)
     Memory: 14.4M
     CGroup: /system.slice/nginx.service
             ??386 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??387 nginx: worker process
             ??388 nginx: worker process

Nov 26 05:32:23 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 26 05:32:23 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Vérifie le module ngx_pagespeed

À ce stade, Nginx est configuré avec le support ngx_pagespeed. Maintenant, il est temps de le tester pour savoir s’il est installé ou non.

Pour tester le pagespeed, exécute la commande suivante en sécurisant ton nom de domaine :

curl -I -p http://example.com

Si tout va bien, tu devrais obtenir le résultat suivant :

HTTP/1.1 200 OK
Server: nginx/1.18.0 (Ubuntu)
Content-Type: text/html
Connection: keep-alive
Vary: Accept-Encoding
Date: Wed, 25 Nov 2020 11:58:56 GMT
X-Page-Speed: 1.13.35.2-0
Cache-Control: max-age=0, no-cache

Dans la sortie ci-dessus, X-Page-Speed : 1.13.35.2-0 signifie que PageSpeed est actif et optimise ton site Web.

Conclusion

Félicitations ! Tu as installé avec succès ngx_pagespeed avec Nginx sur le serveur Ubuntu 20.04. J’espère que ce module augmentera les performances de ton serveur web Nginx et accélérera ton site web. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...