UnZstd#
El módulo Para instalar el módulo, utilice uno de los siguientes paquetes: Angie: Angie PRO: El módulo proporciona las siguientes directivas: Para utilizar el módulo, debe cargarse en el contexto Comprimamos el archivo de prueba Si el cliente soporta Zstandard, recibe el archivo comprimido sin cambios: Si el cliente no soporta Zstandard, el módulo El archivo Versión: 658990e La documentación detallada y el código fuente están disponibles en:
HanadaLee/ngx_http_unzstd_filter_moduleunzstd descomprime las respuestas del backend comprimidas con
Zstandard (Content-Encoding: zstd) para clientes que no aceptan esta
codificación. Así, el backend puede almacenar sus datos comprimidos, ahorrando
espacio en disco y E/S, mientras que todos los clientes reciben una respuesta
que pueden leer.Instalación#
angie-module-unzstdangie-pro-module-unzstdDirectivas#
unzstd — similar a gunzipunzstd_buffers — similar a gunzip_buffersunzstd_force — descomprime las respuestas incluso para clientes que
aceptan Zstandardunzstd_dict_file — establece el archivo de diccionario para
respuestas comprimidas con un diccionario de Zstandard; se permite solo en el
contexto httpCarga del módulo#
main{}:load_module modules/ngx_http_unzstd_filter_module.so;
Ejemplo de configuración#
server {
listen 80 default_server;
location / {
root /usr/share/angie/html;
index index.html;
}
location /storage {
unzstd on;
proxy_pass http://127.0.0.1:8080;
}
}
# Backend
server {
listen 8080;
location /storage {
root /usr/share/angie;
rewrite ^(.*)$ $1.zst break; # Return the compressed file with .zst suffix
add_header Content-Encoding zstd; # Indicate Zstandard compression in the response header
}
}
Demostración#
sample.txt con la utilidad
zstd y coloquemos el resultado donde lo sirve el backend:$ zstd -19 sample.txt -o sample.txt.zst
sample.txt : 24.11% ( 1.43 MiB => 353 KiB, sample.txt.zst)
$ sudo mkdir -p /usr/share/angie/storage
$ sudo cp sample.txt.zst /usr/share/angie/storage/
$ wc -c /usr/share/angie/storage/sample.txt.zst
361662 /usr/share/angie/storage/sample.txt.zst
$ curl -s -H 'Accept-Encoding: zstd' -o received.zst localhost/storage/sample.txt
$ wc -c received.zst
361662 received.zst
unzstd descomprime
el archivo antes de enviarlo:$ curl -s -o received.txt localhost/storage/sample.txt
$ wc -c received.txt
1500092 received.txt
received.txt contiene el texto original de 1500092 bytes,
idéntico a sample.txt, y no los datos comprimidos de 361662 bytes.Información adicional#