zstd: Módulo NGINX para la compresión Zstandard
Instalación
Puedes instalar este módulo en cualquier distribución basada en RHEL, incluyendo, pero no limitado 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-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
Habilita el módulo añadiendo lo siguiente en la parte superior de /etc/nginx/nginx.conf:
load_module modules/ngx_http_zstd_filter_module.so;
load_module modules/ngx_http_zstd_static_module.so;
Este documento describe nginx-module-zstd v0.2.1 lanzado el 27 de julio de 2026.
## especificar el diccionario
zstd_dict_file /path/to/dict;
server {
listen 127.0.0.1:8080;
server_name localhost;
location / {
# habilitar compresión zstd
zstd on;
zstd_min_length 256; # no menos de 256 bytes
zstd_comp_level 3; # establecer el nivel en 3
proxy_pass http://foo.com;
}
}
server {
listen 127.0.0.1:8081;
server_name localhost;
location / {
zstd_static on;
root html;
}
}
Directivas
ngx_http_zstd_filter_module
El módulo ngx_http_zstd_filter_module es un filtro que comprime las respuestas utilizando el método "zstd". Esto a menudo ayuda a reducir el tamaño de los datos transmitidos a la mitad o incluso más.
zstd_dict_file
Sintaxis: zstd_dict_file /path/to/dict;
Predeterminado: -
Contexto: http
Especifica el diccionario externo.
ADVERTENCIA: ¡Ten cuidado! El registro de codificación de contenido solo especifica un medio para señalar el uso del formato zstd, y no especifica adicionalmente ningún mecanismo para publicitar/negociar/sincronizar el uso de un diccionario específico entre el cliente y el servidor. Usa zstd_dict_file solo si puedes asegurar que ambos extremos (servidor y cliente) son capaces de usar el mismo diccionario (por ejemplo, publicitando con un encabezado HTTP). Consulta https://github.com/tokers/zstd-nginx-module/issues/2 para más detalles.
zstd
Sintaxis: zstd on | off;
Predeterminado: zstd off;
Contexto: http, server, location, if in location
Habilita o deshabilita la compresión zstd para la respuesta.
zstd_comp_level
Sintaxis: zstd_comp_level level;
Predeterminado: zstd_comp_level 1;
Contexto: http, server, location
Establece un nivel de compresión zstd para una respuesta. Los valores aceptables están en el rango de 1 a ZSTD_maxCLevel().
zstd_min_length
Sintaxis: zstd_min_length length;
Predeterminado: zstd_min_length 20;
Contexto: http, server, location
Establece la longitud mínima de una respuesta que será comprimida por zstd. La longitud se determina únicamente a partir del campo del encabezado de respuesta Content-Length.
zstd_types
Sintaxis: zstd_types mime-type ...;
Predeterminado: zstd_types text/html application/wasm text/wgsl;
Contexto: http, server, location
Habilita zstd para las respuestas de los tipos MIME especificados además de text/html. El valor especial * coincide con cualquier tipo MIME.
application/wasm y text/wgsl se comprimen por defecto: ambos son formatos similares a texto servidos bajo un tipo de medio no textual, por lo que se comprimen bien pero son fáciles de pasar por alto. Especificar zstd_types explícitamente reemplaza los valores predeterminados, excepto text/html, que siempre está incluido.
zstd_buffers
Sintaxis: zstd_buffers number size;
Predeterminado: zstd_buffers 32 4k | 16 8k;
Contexto: http, server, location
Establece el número y el tamaño de los búferes utilizados para comprimir una respuesta. Por defecto, el tamaño del búfer es igual a una página de memoria. Esto es 4K o 8K, dependiendo de la plataforma.
ngx_http_zstd_static_module
El módulo ngx_http_zstd_static_module permite enviar archivos precomprimidos con la extensión de nombre de archivo .zst en lugar de archivos regulares.
zstd_static
Sintaxis: zstd_static on | off | always;
Predeterminado: zstd_static off;
Contexto: http, server, location
Habilita ("on") o deshabilita ("off") la verificación de la existencia de archivos precomprimidos. También se tienen en cuenta las siguientes directivas: gzip_vary.
Con el valor "always", el archivo "zstd" se utiliza en todos los casos, sin verificar si el cliente lo admite.
Cuando no existe un archivo .zst, la solicitud se rechaza sin cambios, por lo que gzip_static y el filtro gzip aún se aplican como lo harían normalmente.
Variables
ngx_http_zstd_filter_module
$zstd_ratio
Ratio de compresión alcanzado, calculado como la relación entre los tamaños de la respuesta original y la comprimida.
GitHub
Puedes encontrar consejos de configuración adicionales y documentación para este módulo en el repositorio de GitHub para nginx-module-zstd.