Zstandard (zstd)#
该模块添加了对响应进行 Zstandard 压缩的支持,包括动态压缩(即时)和静态压缩(预压缩文件)。与 gzip 相比,zstd 在相当或更好的压缩率下提供更高的压缩和解压缩速度。
该模块由两个组件组成:
http_zstd_filter — 用于动态压缩响应;
http_zstd_static — 用于提供预压缩文件。
安装#
要 安装 该模块,请使用以下软件包之一:
Angie:
angie-module-zstdAngie PRO:
angie-pro-module-zstd
模块加载#
在 main{} 上下文中启用模块:
load_module modules/ngx_http_zstd_filter_module.so;
load_module modules/ngx_http_zstd_static_module.so;
配置示例#
server {
listen 80 default_server;
zstd_types text/plain text/css;
zstd_min_length 256; # 压缩的最小响应长度
zstd_comp_level 3; # 压缩级别(1 到 22)
# 动态文件压缩
location / {
zstd on;
root /usr/share/angie/html;
}
# 后端响应的动态压缩
location /bk/ {
zstd on;
proxy_pass http://127.0.0.1:8081/;
}
# 使用预压缩的 .zst 文件
location /static/ {
zstd_static on;
root /usr/share/angie;
}
}
server {
listen 8081;
location / {
root /usr/share/angie/html;
index index.html;
}
}
工作原理#
您可以组合使用动态压缩(zstd on)和静态压缩(zstd_static on)。在这种情况下,服务器将首先查找预压缩的 .zst 文件。如果不存在,它将动态压缩响应。
仅当 Accept-Encoding 请求头包含 zstd 时才执行压缩,例如:
Accept-Encoding: gzip, zstd
如果应用了压缩或找到了预压缩文件,则会添加以下响应头:
Content-Encoding: zstd
更多信息#
完整文档和源代码可在以下位置获取: tokers/zstd-nginx-module