在我的网站部署到服务器的过程当中,为了提升网站的性能,我使用了nginx反向代理Nodejs服务,其中须要去配置gzip来优化网站的加载。为了减小网络传输数据量,http传输过程当中会采用通用的压缩算法来压缩数据,gzip属于最经常使用的压缩算法。javascript
使用node的http模块发送请求时并无帮咱们进行解压,所以咱们须要手动去判断gzip。其实只须要在Nodejs中引用一个compress中间件来对gzip进行处理就能够了,代码以下:css
var compress = require('compression'); app.use(compress());
另外须要注意的是这个中间件应该放置在全部的中间件最前面以保证全部的返回都是被压缩的。html
nginx的配置就比较大众化了,和使用其余后端语言的时候配置相似,在配置文件的http节点中加入:java
gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_comp_level 5; gzip_types text/plain application/x-javascript text/css application/xml text/javascript;
1) gzipnode
语法:gzip on/offnginx
默认值:off算法
做用域:http, server, location后端
说明:开启或者关闭 gzip 模块,这里使用 on 表示启动缓存
2) gzip_min_length服务器
语法:gzip_min_length length
默认值:gzip_min_length 0
做用域:http, server, location
说明:设置容许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。默认值是0,无论页面多大都压缩。建议设置成大于1k的字节数,小于1k可能会越压越大。|
3) gzip_buffers
语法: gzip_buffers number size
默认值: gzip_buffers 4 4k/8k
做用域: http, server, location
说明:设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。4 16k 表明以 16k 为单位,按照原始数据大小以 16k 为单位的4倍申请内存。
4) gzip_comp_level
语法: gzip_comp_level 1..9
默认值: gzip_comp_level 1
做用域: http, server, location
说明:gzip压缩比,1 压缩比最小处理速度最快,9 压缩比最大但处理最慢(传输快但比较消耗cpu)。这里设置为 5。
5) gzip_types
语法: gzip_types mime-type [mime-type ...]
默认值: gzip_types text/html
做用域: http, server, location
说明:匹配MIME类型进行压缩,(不管是否指定)"text/html" 类型老是会被压缩的。这里设置为 application/x-javascript text/css application/xml。