Saltar a contenido

unzstd: Descomprime respuestas codificadas con Zstd para clientes que no lo soportan

Instalación

Puede instalar este módulo en cualquier distribución basada en RHEL, incluyendo, pero sin limitarse a:

  • RedHat Enterprise Linux 7, 8, 9 y 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 y 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

Habilite el módulo añadiendo lo siguiente al principio de /etc/nginx/nginx.conf:

load_module modules/ngx_http_unzstd_filter_module.so;

Este documento describe nginx-module-unzstd v0.2.0 publicado el 02 de septiembre de 2026.


server {
    listen 127.0.0.1:8080;
    server_name localhost;

    location / {
        # habilita la descompresión zstd para clientes que no soportan compresión zstd
        unzstd on;

        proxy_pass http://foo.com;
    }
}

Directivas

unzstd

Sintaxis: unzstd on | off;

Predeterminado: unzstd off;

Contexto: http, server, location, when

Habilita o deshabilita la descompresión de respuestas comprimidas con zstd para clientes que carecen de soporte zstd. Cuando se compila con ngx_condition_module, esta directiva también puede configurarse dentro de un bloque when.

unzstd_force

Sintaxis: unzstd_force on | off;

Predeterminado: unzstd_force off;

Contexto: http, server, location, when

Cuando está habilitado, descomprime respuestas zstd sin verificar si el cliente acepta zstd. Las respuestas sin Content-Encoding: zstd no se ven afectadas. Cuando se compila con ngx_condition_module, esta directiva también puede configurarse dentro de un bloque when.

unzstd_buffers

Sintaxis: unzstd_buffers number size;

Predeterminado: unzstd_buffers 32 4k | 16 8k;

Contexto: http, server, location

Establece el número y tamaño de los buffers utilizados para descomprimir una respuesta. Por defecto, el tamaño del buffer es igual a una página de memoria. Esto es 4K u 8K, dependiendo de la plataforma.

Pruebas

El conjunto de pruebas rápido compila un módulo dinámico real y lo ejecuta con el entorno oficial nginx-tests de nginx.org:

make tests

La puerta de lanzamiento también incluye ejecución estática con ASan/UBSan, cppcheck exhaustivo, CodeQL, carga de módulos renombrados, nginx -t y nginx -T, sondas de clientes hostiles, comprobaciones de recarga y reemplazo de workers, contabilidad de descriptores de archivos estabilizada y evidencia del Torture Lab con esquema v1:

make lint
make tests-asan
make runtime

GitHub

Puede encontrar consejos de configuración adicionales y documentación para este módulo en el repositorio de GitHub para nginx-module-unzstd.