Aller au contenu

unzstd : Décompresse les réponses encodées en Zstd pour les clients qui ne le prennent pas en charge

Installation

Vous pouvez installer ce module sur toute distribution basée sur RHEL, y compris, 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-unzstd
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-unzstd

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

load_module modules/ngx_http_unzstd_filter_module.so;

Ce document décrit nginx-module-unzstd v0.2.0 publié le 2 septembre 2026.


server {
    listen 127.0.0.1:8080;
    server_name localhost;

    location / {
        # active la décompression zstd pour les clients qui ne prennent pas en charge la compression zstd
        unzstd on;

        proxy_pass http://foo.com;
    }
}

Directives

unzstd

Syntaxe : unzstd on | off ;

Défaut : unzstd off ;

Contexte : http, server, location, when

Active ou désactive la décompression des réponses compressées en zstd pour les clients qui ne prennent pas en charge zstd. Lorsqu'il est compilé avec ngx_condition_module, cette directive peut également être configurée à l'intérieur d'un bloc when.

unzstd_force

Syntaxe : unzstd_force on | off ;

Défaut : unzstd_force off ;

Contexte : http, server, location, when

Lorsqu'elle est activée, décompresse les réponses zstd sans vérifier si le client accepte zstd. Les réponses sans Content-Encoding : zstd ne sont pas affectées. Lorsqu'il est compilé avec ngx_condition_module, cette directive peut également être configurée à l'intérieur d'un bloc when.

unzstd_buffers

Syntaxe : unzstd_buffers nombre taille ;

Défaut : unzstd_buffers 32 4k | 16 8k ;

Contexte : http, server, location

Définit le nombre et la taille des tampons utilisés pour décompresser une réponse. Par défaut, la taille du tampon est égale à une page mémoire. Celle-ci est de 4 Ko ou 8 Ko, selon la plateforme.

Tests

La suite rapide compile un véritable module dynamique et l'exécute avec le harnais officiel nginx-tests de nginx.org :

make tests

La passerelle de publication inclut également une exécution statique ASan/UBSan, un cppcheck exhaustif, CodeQL, le chargement de modules renommés, nginx -t et nginx -T, des sondes client hostiles, des vérifications de rechargement et de remplacement de workers, une comptabilité des descripteurs de fichiers stabilisée, ainsi que des preuves du Torture Lab schéma-v1 :

make lint
make tests-asan
make runtime

GitHub

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