GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Nginx avec la compression Brotli sur Ubuntu 18.04 LTS

Nginx (engine-x) est un serveur HTTP haute performance open source, 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.

Brotli est un algorithme de compression open source créé par Google. Brotli offre une compression meilleure et sans perte que gzip, et il est désormais pris en charge par les principaux navigateurs et serveurs Web.

En savoir plus sur les performances de Brotli :

  • Article de blog d'Akamai.
  • Article Cloudflare sur Brotli.
  • Article de blog Mozilla.

Dans ce didacticiel, je vais vous montrer étape par étape comment ajouter la prise en charge de l'algorithme de compression Brotli dans le serveur Web Nginx. Nous allons créer un package nginx personnalisé prenant en charge l'algorithme de compression brotli. Nous utiliserons la dernière version d'Ubuntu et nous créerons un package nginx pour le système d'exploitation Debian.

Prérequis

  • Ubuntu 18.04
  • Privilèges root

Qu'allons-nous faire ?

  1. Installer les dépendances de compilation
  2. Installer Nginx avec ngx_brotli
    • Ajouter un référentiel Nginx
    • Télécharger Nginx et ngx_brotli
    • Développez Nginx avec l'assistance ngx_brotli
    • Installer Nginx et activer la prise en charge de ngx_brotli
  3. Configurer l'hôte virtuel Nginx
  4. Test

Étape 1 - Installer les dépendances de build

La première chose dont nous avons besoin pour ce guide est d'installer les dépendances de construction sur le système.

Mettez à jour le référentiel Ubuntu, puis installez toutes les dépendances de construction de packages à l'aide d'une commande apt ci-dessous.

sudo apt update
sudo apt install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip

Attendez que tous les packages soient installés.

Étape 2 - Installer Nginx avec ngx_brotli

Dans cette étape, nous allons installer le package 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 package nginx qui peut être téléchargée à partir du référentiel officiel nginx.

Ajouter un référentiel Nginx

Avant d'ajouter le référentiel nginx, ajoutez le signe de clé nginx à l'aide de la commande ci-dessous.

curl -L https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

Créez maintenant un nouveau fichier de référentiel nginx 'nginx.list' dans le répertoire '/etc/apt/sources.list.d' à l'aide de l'éditeur vim.

vim /etc/apt/sources.list.d/nginx.list

Collez la configuration ci-dessous.

deb http://nginx.org/packages/ubuntu/ bionic nginx
deb-src http://nginx.org/packages/ubuntu/ bionic nginx

Enregistrez et quittez.

Maintenant, mettez à jour les référentiels Ubuntu.

sudo apt-get update

Le dépôt Nginx a été ajouté.

Télécharger les fichiers sources Nginx et ngx_brotli

Nous allons maintenant télécharger les packages Nginx à partir du référentiel nginx à l'aide de la commande apt.

Accédez au répertoire '/usr/local/src' et téléchargez la source Nginx à l'aide de la commande apt ci-dessous.

cd /usr/local/src
sudo apt source nginx

Installez maintenant toutes les dépendances de package nécessaires pour nginx.

sudo apt build-dep nginx -y

Et une fois l'installation terminée, clonez le code source 'ngx_brotli' depuis GitHub.

git clone --recursive https://github.com/google/ngx_brotli.git

Nginx et ngx_brotli ont été téléchargés.

Construire Nginx avec le support ngx_brotli

Maintenant, nous devons modifier la règle de construction Nginx par défaut, nous devons ajouter le ngx_brotli à la règle de construction des packages.

Allez dans le répertoire '/usr/local/src/nginx-*' et modifiez la configuration des 'règles' debian.

cd /usr/local/src/nginx-*/
vim debian/rules

Vous obtiendrez maintenant deux environnements de construction pour 'config.env.nginx ' et 'config.env.nginx_debug '. Ajoutez l'option '--add-module=' pour ngx_brotli aux deux environnements construits.

--add-module=/usr/local/src/ngx_brotli

Enregistrez et quittez.

Et nous sommes prêts à compiler et à construire le package nginx avec le support ngx_brotli.

Exécutez la commande dpkg ci-dessous.

sudo dpkg-buildpackage -b -uc -us

Remarque :

  • -b :Construire en binaire uniquement, pas de fichiers source.
  • -uc :Fichier .buildinfo et .changes non signé.
  • -us :paquet source non signé.

Une fois la construction terminée, vous obtiendrez les packages nginx-*.deb dans le répertoire '/usr/local/src' comme indiqué ci-dessous.

ls -lah

Installer Nginx et activer le support Brotli

La construction de nginx avec ngx_brotli est terminée, installez les packages 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é.

Allez maintenant dans le répertoire de configuration '/etc/nginx' et modifiez le fichier de configuration 'nginx.conf'.

cd /etc/nginx/
vim nginx.conf

Activez 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;

Enregistrez et quittez.

Testez la configuration de nginx et assurez-vous 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 assurez-vous d'avoir les fichiers de certificat pour votre nom de domaine, ou vous pouvez générer des certificats SSL Letsencrypt gratuits.

Accédez au répertoire de configuration '/etc/nginx' et créez une nouvelle configuration d'hôte virtuel 'brotli.conf'.

cd /etc/nginx/
vim conf.d/brotli.conf

Collez-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; } }

Enregistrez et quittez.

Remarque :

  • Changez le nom de domaine avec votre propre domaine.
  • Modifiez le chemin des certificats SSL.

Testez maintenant la configuration de nginx et assurez-vous qu'il n'y a pas d'erreur, puis redémarrez le service.

nginx -t
systemctl restart nginx

Le nouvel hôte virtuel nginx a été ajouté.

Étape 4 - Tester

Ouvrez votre navigateur Web et tapez le nom de domaine, le mien est :

http://nginx.hakase-labs.io

Vous allez maintenant être redirigé vers la connexion https. Faites un clic droit sur la page et cliquez sur 'Inspecter l'élément '. Cliquez sur 'Réseau ' et rechargez la page.

Cliquez sur le détail des demandes et vous obtiendrez tous les en-têtes de demande et de réponse du serveur Web, comme indiqué ci-dessous.

Dans la section 'Response headers', vous verrez le 'content-encoding:br' pour le support brotli.

Maintenant, si vous voulez un autre test, vous pouvez utiliser la commande curl comme indiqué ci-dessous.

curl -H 'Accept-Encoding: br' -I https://nginx.hakase-labs.io

Et vous verrez le résultat 'content-encoding:br' pour le support brotli.

L'installation de Nginx avec prise en charge de la compression Brotli sur Ubuntu 18.04 s'est terminée avec succès.

Références

  • https://github.com/google/ngx_brotli
  • https://www.babak.io/blog/

Ubuntu
  1. Comment installer Nextcloud avec Nginx sur Ubuntu 18.04 LTS

  2. Comment installer Seafile avec Nginx sur Ubuntu 20.04 LTS

  3. Comment installer MediaWiki avec Nginx sur Ubuntu 16.04

  4. Comment installer Varnish Reverse Proxy avec Nginx sur Ubuntu 16.04 LTS

  5. Comment déployer Modsecurity avec Nginx sur Ubuntu 20.04 LTS

Comment installer phpMyAdmin avec Nginx (LEMP) sur Ubuntu 18.04 LTS

Comment installer Nginx avec le module Ngx_Pagespeed sur Ubuntu 16.04 LTS

Comment installer Joomla avec Nginx sur Ubuntu 18.04 LTS

Comment installer phpMyAdmin avec Nginx sur Ubuntu 18.04 LTS

Comment installer phpMyAdmin avec Nginx sur Ubuntu 20.04 LTS

Comment installer le module Brotli pour Nginx sur Ubuntu 20.04 LTS