Unbrotli#
该模块提供以下指令: 要使用该模块,必须在 让我们放置压缩的测试文件 如果客户端支持 Brotli,它将接收未解压缩的压缩文件: 如果客户端不支持 Brotli, 该文件在发送到客户端之前已由服务器解压缩。 详细文档和源代码可在以下网址获取:
clyfish/ngx_unbrotli.unbrotli
模块旨在为不支持 Brotli 压缩方法的客户端解压来自后端的响应(Content-Encoding: br
)。在后端以压缩形式存储数据可以节省空间时,这尤其有用。Directives#
unbrotli
– 类似于 gunzip。unbrotli_buffers
– 类似于 gunzip_buffers。Loading the Module#
main{}
的上下文中加载它:load_module modules/ngx_http_unbrotli_filter_module.so;
Configuration Example#
server {
listen 80 default_server;
location / {
root /usr/share/angie/html;
index index.html;
}
location /storage {
unbrotli on;
proxy_pass http://127.0.0.1:8080;
}
}
# Backend
server {
listen 8080;
location /storage {
root /usr/share/angie;
rewrite ^(.*)$ $1.br break; # 返回带有 .br 后缀的压缩文件
add_header Content-Encoding br; # 在响应头中指示 Brotli 压缩
}
}
Demonstration#
war-and-peace.txt.br
:$ ls -l /usr/share/angie/storage/
total 2292
-rw-r--r-- 1 root root 1115616 Feb 27 16:10 war-and-peace.txt.br
$ curl -s -H 'Accept-Encoding: br' -o tmp/war-and-peace.txt localhost/storage/war-and-peace.txt
$ ls -l tmp/
total 1092
-rw-r--r-- 1 asv asv 1115616 Feb 27 16:36 war-and-peace.txt
unbrotli
模块将在发送之前在服务器上解压缩文件:$ curl -s -o tmp/war-and-peace.txt localhost/storage/war-and-peace.txt
$ ls -l tmp/
total 3284
-rw-r--r-- 1 asv asv 3359405 Feb 27 16:39 war-and-peace.txt
Additional Information#