Aller au contenu

brotli: Modules dynamiques Brotli pour NGINX

Installation

Vous pouvez installer ce module dans toute distribution basée sur RHEL, y compris, mais sans s'y limiter :

  • RedHat Enterprise Linux 7, 8, 9 et 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 et Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-brotli
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-brotli

Activez le module en ajoutant ce qui suit en haut de /etc/nginx/nginx.conf :

load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;

Ce document décrit nginx-module-brotli v0.1.4 publié le 01 juillet 2021.


Brotli est un algorithme de compression sans perte à usage général qui compresse les données en utilisant une combinaison d'une variante moderne de l'algorithme LZ77, de codage Huffman et de modélisation de contexte d'ordre 2, avec un taux de compression comparable aux meilleures méthodes de compression à usage général actuellement disponibles. Il est similaire en vitesse à deflate mais offre une compression plus dense.

ngx_brotli est un ensemble de deux modules NGINX :

  • module de filtre ngx_brotli - utilisé pour compresser les réponses à la volée,
  • module statique ngx_brotli - utilisé pour servir des fichiers pré-compressés.

Directives de configuration

brotli_static

  • syntax: brotli_static on|off|always
  • default: off
  • context: http, server, location

Active ou désactive la vérification de l'existence de fichiers pré-compressés avec l'extension .br. Avec la valeur always, le fichier pré-compressé est utilisé dans tous les cas, sans vérifier si le client le prend en charge.

brotli

  • syntax: brotli on|off
  • default: off
  • context: http, server, location, if

Active ou désactive la compression à la volée des réponses.

brotli_types

  • syntax: brotli_types <mime_type> [..]
  • default: text/html
  • context: http, server, location

Active la compression à la volée des réponses pour les types MIME spécifiés en plus de text/html. La valeur spéciale * correspond à tout type MIME. Les réponses avec le type MIME text/html sont toujours compressées.

brotli_buffers

  • syntax: brotli_buffers <number> <size>
  • default: 32 4k|16 8k
  • context: http, server, location

Déprécié, ignoré.

brotli_comp_level

  • syntax: brotli_comp_level <level>
  • default: 6
  • context: http, server, location

Définit la qualité de compression Brotli (compression) à la volée level. Les valeurs acceptables sont dans la plage de 0 à 11.

brotli_window

  • syntax: brotli_window <size>
  • default: 512k
  • context: http, server, location

Définit la size de la fenêtre Brotli. Les valeurs acceptables sont 1k, 2k, 4k, 8k, 16k, 32k, 64k, 128k, 256k, 512k, 1m, 2m, 4m, 8m et 16m.

brotli_min_length

  • syntax: brotli_min_length <length>
  • default: 20
  • context: http, server, location

Définit la longueur minimale length d'une réponse qui sera compressée. La longueur est déterminée uniquement à partir du champ d'en-tête de réponse Content-Length.

Variables

$brotli_ratio

Ratio de compression atteint, calculé comme le ratio entre les tailles de réponse originale et compressée.

Exemple de configuration

brotli on;
brotli_comp_level 6;
brotli_static on;
brotli_types application/atom+xml application/javascript application/json application/rss+xml
             application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype
             application/x-font-ttf application/x-javascript application/xhtml+xml application/xml
             font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon
             image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml;

GitHub

Vous pouvez trouver des conseils de configuration supplémentaires et de la documentation pour ce module dans le dépôt GitHub pour nginx-module-brotli.