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.1.1 lanzado el 23 de octubre de 2023.
## 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 de encabezado de respuesta "Content-Length".
zstd_types
Sintaxis: zstd_types mime-type ...;
Predeterminado: zstd_types text/html;
Contexto: http, server, location
Habilita zstd de respuestas para los tipos MIME especificados además de "text/html". El valor especial "*" coincide con cualquier tipo MIME.
zstd_buffers
Sintaxis: zstd_buffers number size;
Predeterminado: zstd_buffers 32 4k | 16 8k;
Contexto: http, server, location
Establece el número y 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.
Variables
ngx_http_zstd_filter_module
$zstd_ratio
Relación de compresión lograda, calculada como la relación entre los tamaños de respuesta original y comprimida.
GitHub
Puedes encontrar consejos adicionales de configuración y documentación para este módulo en el repositorio de GitHub para nginx-module-zstd.