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 :

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 ?

  1. Installer les dépendances de construction
  2. 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
  3. Configurer l’hôte virtuel Nginx
  4. 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é.

Ajoute le référentiel Nginx

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.

Télécharge les fichiers sources de Nginx et de ngx_brotli

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.

Construis Nginx avec le support de ngx_brotli

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

Construction du paquet terminée

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

Installe Nginx et active le support Brotli

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.

Configuration de Nginx

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.

Nginx test page

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.

Encodage de Brotli

L’installation de Nginx avec le support de la compression Brotli sur Ubuntu 18.04 a été effectuée avec succès.

Références

Vous aimerez aussi...