1、开始数据压缩配置的原因
后台返回前端大量的数据,如果不进行压缩,将导致网络堵塞、占用大量带宽。
2、开启Nginx数据压缩达到的目标
减少传输的数据量,节省带宽;从而达到降低费用。
Nginx数据压缩配置:
在Nginx的nginx.conf文件的http模块添加如下配置项
#gzip压缩功能配置
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 6;
gzip_proxied any;
gzip_types text/css text/xml image/gif image/jpeg image/png application/javascript image/x-ms-bmp application/pdf text/plain application/json application/xhtml+xml;
gzip_vary on;
gzip_disable "MSIE [1-6].";
配置项说明:
gzip : 决定是否开启gzip模块
param:on|off
example:gzip on;
gzip_buffers : 设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间
param1:int
param2:int(k) 后面单位是k
example: gzip_buffers 4 8k;
gzip_comp_level : 设置gzip压缩等级,等级越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大
param:1-9
example:gzip_com_level 6;
gzip_min_length : 当返回内容大于此值时才会使用gzip进行压缩,以K为单位,当值为0时,所有页面都进行压缩
param:int
example:gzip_min_length 1000;
gzip_http_version : 用于识别http协议的版本,早期的浏览器不支持gzip压缩,用户会看到乱码,所以为了支持前期版本加了此选项,目前此项基本可以忽略
param: 1.0|1.1
example:gzip_http_version 1.0
gzip_types: 设置需要压缩的MIME类型,非设置值不进行压缩
param:text/html|application/x-javascript|text/css|application/xml
example:gzip_types text/html;
gzip_proxied : Nginx做为反向代理的时候启用,
param:off|expired|no-cache|no-sotre|private|no_last_modified|no_etag|auth|any
expample:gzip_proxied no-cache;
off – 关闭所有的代理结果数据压缩
expired – 启用压缩,如果header中包含”Expires”头信息
no-cache – 启用压缩,如果header中包含”Cache-Control:no-cache”头信息
no-store – 启用压缩,如果header中包含”Cache-Control:no-store”头信息
private – 启用压缩,如果header中包含”Cache-Control:private”头信息
no_last_modified – 启用压缩,如果header中包含”Last_Modified”头信息
no_etag – 启用压缩,如果header中包含“ETag”头信息
auth – 启用压缩,如果header中包含“Authorization”头信息
any – 无条件压缩所有结果数据
gzip_vary : 加上 http 头信息Vary: Accept-Encoding给后端代理服务器识别是否启用 gzip 压缩。
param:on|off
expample:gzip_vary on;
gzip_disable : 根据 “User-Agent” 头来关闭 Gzip,可用正则表达式。
param:regex(正则表达式)
example:gzip_disable "MSIE [1-6].";
备注:对http/https返回的数据都进行了明显的压缩。