使用预压缩模块查找预压缩的 .gz 页面版本,并将其提供给支持 gzip 的浏览器,以避免即时压缩的开销非常容易。但我想做的是从磁盘中删除未压缩的版本,仅存储压缩的版本,这显然会以相同的方式提供服务,但如果不支持 gzip 的用户代理请求页面,则希望 nginx 在传输之前即时解压缩它。
是否有人已经完成了这项工作,或者是否有其他高性能 Web 服务器提供此功能?
是否有人已经完成了这项工作,或者是否有其他高性能 Web 服务器提供此功能?
gzip_static always;
http://nginx.org/en/docs/http/ngx_http_gzip_static_module.html
为了能够提供未压缩版本的文件,即你的服务器上只有 .gz 文件以节省 IO,你需要使用 http_gunzip_module。在你的配置文件中,它看起来像这样:gunzip on;
http://nginx.org/en/docs/http/ngx_http_gunzip_module.html
你可能也会对gunzip_module页面底部的链接感兴趣。gzip_static on;
...
upstream decompresser {
server localhost:8080; // script which will decompress the file
}
location / {
try_files $uri @decompress;
}
location @decompress {
proxy_pass http://decompresser;
}
gzip
程序将文件解压缩到 /tmp 目录中的文件中。这可以通过允许文件在短时间内挂起来节省每个请求的解压缩开销。