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.