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.