Zstandard (zstd)#
El módulo añade soporte para compresión Zstandard de respuestas, tanto dinámica (al vuelo) como estática (archivos precomprimidos). Comparado con gzip, zstd ofrece mayor velocidad de compresión y descompresión con ratios de compresión comparables o mejores.
El módulo consta de dos componentes:
http_zstd_filter — para comprimir respuestas dinámicamente;
http_zstd_static — para servir archivos precomprimidos.
Instalación#
Para instalar el módulo, utiliza uno de los siguientes paquetes:
Angie:
angie-module-zstd
Angie PRO:
angie-pro-module-zstd
Carga del Módulo#
Habilita los módulos en el contexto main{}
:
load_module modules/ngx_http_zstd_filter_module.so;
load_module modules/ngx_http_zstd_static_module.so;
Configuración de Ejemplo#
server {
listen 80 default_server;
zstd_types text/plain text/css;
zstd_min_length 256; # Tamaño mínimo de respuesta para comprimir
zstd_comp_level 3; # Nivel de compresión (1–22)
# Compresión dinámica para archivos estáticos
location / {
zstd on;
root /usr/share/angie/html;
}
# Compresión dinámica para respuestas de backend
location /bk/ {
zstd on;
proxy_pass http://127.0.0.1:8081/;
}
# Servir archivos precomprimidos .zst
location /static/ {
zstd_static on;
root /usr/share/angie;
}
}
server {
listen 8081;
location / {
root /usr/share/angie/html;
index index.html;
}
}
Cómo Funciona#
Puedes combinar compresión dinámica (zstd on
) y estática (zstd_static on
). En este caso, el servidor primero buscará un archivo precomprimido .zst
. Si no existe, comprimirá la respuesta dinámicamente.
La compresión solo se realiza cuando la cabecera Accept-Encoding
incluye zstd
, por ejemplo:
Accept-Encoding: gzip, zstd
Si se aplica compresión o se encuentra un archivo precomprimido, se añade la siguiente cabecera de respuesta:
Content-Encoding: zstd
Más Información#
La documentación completa y el código fuente están disponibles en: tokers/zstd-nginx-module