对于静态文件先压缩再输出是再正常不过的事了,但是这种压缩都是动态的,在每次请求都会先压缩再输出,大大浪费了很多 cpu。如果前端加了反向代理缓存,那能减少这种浪费。但不是每个生产环境前端都有缓存的。而nginx有个模块Gzip Precompression,这个模块的作用是对于需要压缩的文件,直接读取已经压缩好的文件(文件名为加.gz),而不是动态压缩,对于不支持 gzip的请求则读取原文件。 编译nginx的时候需要把--with-http_gzip_static_module参数加上。
#启动预压缩功能,对所有类型的文件都有效
gzip_static on;
#找不到预压缩文件,进行动态压缩
gzip on;
gzip_min_length 1000; gzip_buffers 4 16k; gzip_comp_level 5; gzip_types text/plain application/x-javascript text/css application/xml;
#gzip公共配置
复制代码代码如下:
gzip_http_version 1.1
gzip_proxied expired no-cache no-store private auth;
#纠结的配置
gzip_static配置优先级高于gzip (责任编辑:IT) |