Comment installer Nginx avec Brotli Compression sur Ubuntu 18.04 LTS
Nginx (engine-x) est un serveur HTTP, reverse proxy et proxy IMAP/POP3 open source très performant. Les caractéristiques exceptionnelles de Nginx sont la stabilité, un riche ensemble de fonctionnalités, une configuration simple et une faible consommation de mémoire.
Brotli est un algorithme de compression open source créé par Google. Brotli fournit une compression meilleure et sans perte que gzip, et il est maintenant pris en charge par les principaux navigateurs et serveurs Web.
En savoir plus sur les performances de Brotli :
- Article du blog d’Akamai.
- Article de Cloudflare sur Brotli.
- Article du blog de Mozilla.
Dans ce tutoriel, je vais te montrer, étape par étape, comment ajouter la prise en charge de l’algorithme de compression Brotli dans le serveur Web Nginx. Nous allons construire un paquet Nginx personnalisé qui prend en charge l’algorithme de compression Brotli. Nous utiliserons la dernière version d’Ubuntu, et nous construirons également un paquet nginx pour le système d’exploitation Debian.
Conditions préalables
- Ubuntu 18.04
- Privilèges de racine
Ce que nous allons faire ?
- Installer les dépendances de construction
- Installe Nginx avec ngx_brotli
- Ajouter le dépôt de Nginx
- Télécharger Nginx et ngx_brotli
- Construire Nginx avec le support de ngx_brotli
- Installer Nginx et activer le support ngx_brotli
- Configurer l’hôte virtuel Nginx
- Test de
Étape 1 – Installer les dépendances de construction
La première chose dont nous avons besoin pour ce guide est d’installer les dépendances de construction sur le système.
Mets à jour le référentiel Ubuntu, puis installe tous les paquets des dépendances de construction à l’aide de la commande apt ci-dessous.
sudo apt update
sudo apt install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip
Attends que tous les paquets soient installés.
Étape 2 – Installe Nginx avec ngx_brotli
Dans cette étape, nous allons installer le paquet nginx personnalisé qui prend en charge l’algorithme de compression brotli sur le système Ubuntu. Et nous utiliserons la dernière version stable du paquet nginx qui peut être téléchargée depuis le dépôt officiel de nginx.
Ajouter le dépôt nginx
Avant d’ajouter le référentiel nginx, ajoute le signe de la clé nginx à l’aide de la commande ci-dessous.
curl -L https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
Crée maintenant un nouveau fichier de référentiel nginx ‘nginx.list’ dans le répertoire ‘/etc/apt/sources.list.d’ en utilisant l’éditeur vim.
vim /etc/apt/sources.list.d/nginx.list
Colle la configuration ci-dessous.
deb http://nginx.org/packages/ubuntu/ bionic nginx deb-src http://nginx.org/packages/ubuntu/ bionic nginx
Sauvegarde et quitte.
Mets maintenant à jour les dépôts ubuntu.
sudo apt-get update
Le dépôt Nginx a été ajouté.
Télécharge les fichiers sources de Nginx et ngx_brotli
Nous allons maintenant télécharger les paquets Nginx depuis le dépôt nginx à l’aide de la commande apt.
Va dans le répertoire ‘/usr/local/src’ et télécharge les sources de Nginx à l’aide de la commande apt ci-dessous.
cd /usr/local/src
sudo apt source nginx
Installe maintenant toutes les dépendances des paquets nécessaires pour nginx.
sudo apt build-dep nginx -y
Et une fois l’installation terminée, clone le code source de ‘ngx_brotli’ sur GitHub.
git clone --recursive https://github.com/google/ngx_brotli.git
Nginx et ngx_brotli ont été téléchargés.
Construis Nginx avec le support de ngx_brotli
Nous devons maintenant modifier la règle de construction par défaut de Nginx, nous devons ajouter le ngx_brotli à la règle de construction des paquets.
Va dans le répertoire ‘/usr/local/src/nginx-*’ et modifie la configuration debian ‘rules’.
cd /usr/local/src/nginx-*/
vim debian/rules
Tu auras maintenant deux environnements de construction pour‘config.env.nginx‘ et‘config.env.nginx_debug‘. Ajoute l’option ‘–add-module=’ pour ngx_brotli aux deux environnements de construction.
--add-module=/usr/local/src/ngx_brotli
Sauvegarde et quitte.
Et nous sommes prêts à compiler et construire le paquet nginx avec la prise en charge de ngx_brotli.
Exécute la commande dpkg ci-dessous.
sudo dpkg-buildpackage -b -uc -us
Remarque :
- -b : Compilation binaire uniquement, pas de fichiers sources.
- -uc : Fichier .buildinfo et .changes non signés.
- -us : paquet source non signé.
Lorsque la construction est terminée, tu obtiendras les paquets nginx-*.deb dans le répertoire ‘/usr/local/src’ comme indiqué ci-dessous.
ls -lah
Installe Nginx et active la prise en charge de Brotli
La construction de Nginx avec ngx_brotli est terminée, installe les paquets nginx-*.deb à l’aide de la commande dpkg ci-dessous.
cd /usr/local/src/
sudo dpkg -i *.deb
Nginx avec le support ngx_brotli a été installé.
Va maintenant dans le répertoire de configuration ‘/etc/nginx’ et modifie le fichier de configuration ‘nginx.conf’.
cd /etc/nginx/
vim nginx.conf
Active le ngx_brotli sur nginx en ajoutant la configuration ci-dessous dans la section ‘http {…}’.
brotli on; brotli_comp_level 6; brotli_static on; brotli_types text/plain text/css application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/x-icon image/vnd.microsoft.icon image/bmp image/svg+xml;
Sauvegarde et quitte.
Teste la configuration de nginx et vérifie qu’il n’y a pas d’erreur.
nginx -t
La prise en charge de la compression Brotli a été activée.
Étape 3 – Configurer l’hôte virtuel Nginx
Dans cette étape, nous allons essayer de créer un nouvel hôte virtuel pour le nom de domaine nginx.hakase-labs.io.
Remarque :
- La compression Brotli ne prend en charge que le site HTTPS, alors assure-toi d’avoir les fichiers de certificat pour ton nom de domaine, ou tu peux générer des certificats SSL gratuits Letsencrypt.
Va dans le répertoire de configuration ‘/etc/nginx’ et crée une nouvelle configuration d’hôte virtuel ‘brotli.conf’.
cd /etc/nginx/
vim conf.d/brotli.conf
Colle-y la configuration d’hôte virtuel nginx suivante.
# Redirect HTTP to HTTPS Nginx
server { listen 80; server_name nginx.hakase-labs.io; return 301 https://$host$request_uri; } # SSL configuration server { listen 443 ssl http2; server_name nginx.hakase-labs.io;
ssl_certificate /etc/letsencrypt/live/nginx.hakase-labs.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/nginx.hakase-labs.io/privkey.pem; # Improve HTTPS performance with session resumption ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; # Enable server-side protection against BEAST attacks ssl_prefer_server_ciphers on; ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5; # Disable SSLv3 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# web root directory location / { root /usr/share/nginx/html; } }
Sauvegarde et quitte.
Remarque :
- Change le nom de domaine avec ton propre domaine.
- Change le chemin des certificats SSL.
Maintenant, teste la configuration de nginx et assure-toi qu’il n’y a pas d’erreur, puis redémarre le service.
nginx -t
systemctl restart nginx
Le nouvel hôte virtuel nginx a été ajouté.
Étape 4 – Test
Ouvre ton navigateur Web et tape le nom de domaine, le mien est :
http://nginx.hakase-labs.io
Tu vas maintenant être redirigé vers la connexion https. Fais un clic droit sur la page et clique sur‘Inspecter l’élément‘. Clique sur l’onglet‘Réseau‘ et recharge la page.
Clique sur le détail des demandes et tu obtiendras tous les en-têtes de demande et de réponse du serveur Web, comme indiqué ci-dessous.
Dans la section ‘En-têtes de réponse’, tu verras ‘content-encoding : br’ pour la prise en charge de Brotli.
Maintenant, si tu veux faire un autre test, tu peux utiliser la commande curl comme indiqué ci-dessous.
curl -H 'Accept-Encoding: br' -I https://nginx.hakase-labs.io
Et tu verras le résultat ‘content-encoding : br’ pour la prise en charge de Brotli.
L’installation de Nginx avec le support de la compression Brotli sur Ubuntu 18.04 a été effectuée avec succès.