zstd: module NGINX pour la compression Zstandard
Installation
Vous pouvez installer ce module dans n'importe quelle 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-zstd
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-zstd
Activez le module en ajoutant ce qui suit en haut de /etc/nginx/nginx.conf :
load_module modules/ngx_http_zstd_filter_module.so;
load_module modules/ngx_http_zstd_static_module.so;
Ce document décrit nginx-module-zstd v0.1.1 publié le 23 octobre 2023.
## spécifier le dictionnaire
zstd_dict_file /path/to/dict;
server {
listen 127.0.0.1:8080;
server_name localhost;
location / {
# activer la compression zstd
zstd on;
zstd_min_length 256; # pas moins de 256 octets
zstd_comp_level 3; # définir le niveau à 3
proxy_pass http://foo.com;
}
}
server {
listen 127.0.0.1:8081;
server_name localhost;
location / {
zstd_static on;
root html;
}
}
Directives
ngx_http_zstd_filter_module
Le module ngx_http_zstd_filter_module est un filtre qui compresse les réponses en utilisant la méthode "zstd". Cela aide souvent à réduire la taille des données transmises de moitié, voire plus.
zstd_dict_file
Syntaxe : zstd_dict_file /path/to/dict;
Par défaut : -
Contexte : http
Spécifie le dictionnaire externe.
AVERTISSEMENT : Faites attention ! L'enregistrement de codage de contenu ne spécifie qu'un moyen de signaler l'utilisation du format zstd, et ne spécifie pas de mécanisme pour annoncer/négocier/synchroniser l'utilisation d'un dictionnaire spécifique entre le client et le serveur. Utilisez zstd_dict_file uniquement si vous pouvez garantir que les deux extrémités (serveur et client) sont capables d'utiliser le même dictionnaire (par exemple, annoncer avec un en-tête HTTP). Voir https://github.com/tokers/zstd-nginx-module/issues/2 pour les détails.
zstd
Syntaxe : zstd on | off;
Par défaut : zstd off;
Contexte : http, server, location, if in location
Active ou désactive la compression zstd pour la réponse.
zstd_comp_level
Syntaxe : zstd_comp_level level;
Par défaut : zstd_comp_level 1;
Contexte : http, server, location
Définit un niveau de compression zstd pour une réponse. Les valeurs acceptables sont comprises entre 1 et ZSTD_maxCLevel().
zstd_min_length
Syntaxe : zstd_min_length length;
Par défaut : zstd_min_length 20;
Contexte : http, server, location
Définit la longueur minimale d'une réponse qui sera compressée par zstd. La longueur est déterminée uniquement à partir du champ d'en-tête de réponse "Content-Length".
zstd_types
Syntaxe : zstd_types mime-type ...;
Par défaut : zstd_types text/html;
Contexte : http, server, location
Active zstd pour les réponses des types MIME spécifiés en plus de "text/html". La valeur spéciale "*" correspond à tout type MIME.
zstd_buffers
Syntaxe : zstd_buffers number size;
Par défaut : zstd_buffers 32 4k | 16 8k;
Contexte : http, server, location
Définit le nombre et la taille des tampons utilisés pour compresser une réponse. Par défaut, la taille du tampon est égale à une page mémoire. Cela est soit 4K soit 8K, selon la plateforme.
ngx_http_zstd_static_module
Le module ngx_http_zstd_static_module permet d'envoyer des fichiers précompressés avec l'extension de nom de fichier ".zst" au lieu de fichiers réguliers.
zstd_static
Syntaxe : zstd_static on | off | always;
Par défaut : zstd_static off;
Contexte : http, server, location
Active ("on") ou désactive ("off") la vérification de l'existence de fichiers précompressés. Les directives suivantes sont également prises en compte : gzip_vary.
Avec la valeur "always", le fichier "zsted" est utilisé dans tous les cas, sans vérifier si le client le prend en charge.
Variables
ngx_http_zstd_filter_module
$zstd_ratio
Ratio de compression atteint, calculé comme le rapport entre les tailles de réponse originale et compressée.
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-zstd.