Saltar a contenido

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.