UnZstd#
要 安装 该模块,请使用以下软件包之一: Angie: Angie PRO: 该模块提供以下指令: 要使用该模块,必须在 让我们用 zstd 工具压缩测试文件 如果客户端支持 Zstandard,它将原样接收压缩文件: 如果客户端不支持 Zstandard, 文件 版本: 658990e 详细文档和源代码可在以下位置获取:
HanadaLee/ngx_http_unzstd_filter_moduleunzstd 模块用于为不接受 Zstandard 编码的客户端解压来自后端使用 Zstandard 压缩(Content-Encoding: zstd)的响应。这样,后端就可以压缩存储数据,从而节省磁盘空间和 I/O,同时每个客户端仍能收到可读取的响应。安装#
angie-module-unzstdangie-pro-module-unzstd指令#
unzstd — 类似于 gunzipunzstd_buffers — 类似于 gunzip_buffersunzstd_force — 即使对接受 Zstandard 的客户端也解压响应unzstd_dict_file — 设置用于解压使用 Zstandard 字典压缩的响应的字典文件;仅允许在 http 上下文中使用加载模块#
main{} 上下文中加载它:load_module modules/ngx_http_unzstd_filter_module.so;
配置示例#
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
}
}
演示#
sample.txt,并将结果放到后端提供文件的位置:$ 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 模块将在发送前解压文件:$ curl -s -o received.txt localhost/storage/sample.txt
$ wc -c received.txt
1500092 received.txt
received.txt 保存的是原始的 1500092 字节文本,与 sample.txt 相同,而不是 361662 字节的压缩数据。附加信息#