gzip 压缩功能
nginx提供了对文件内容压缩的功能,允许将内容在发送到客户端之前根据具体的策略进行压缩从而节约带宽。这个功能和Apache的mod_deflate压缩功能类似。依赖于ngx_http_gzip_module模块,nginx默认集成了这个模块。
在cmd 窗口下查看nginx版本,输入nginx -V 可以看到nginx提供了gzip这个功能。
网页压缩是一项由web服务器和浏览器之间共同遵循的协议,也就是说web服务器和浏览器都支持压缩技术,目前所流行的浏览器都是支持的,包括IE ,火狐,谷歌,Opera等,支持的服务器有Apache和IIS等。
在实际应用中压缩比例一般都在3到10倍,也就是本来100K大小的页面,采用压缩后实际传输的内容大小只有10k到30k左右大小,这样可以大大节省服务器的网络带宽,同时如果应用程序的响应速度足够快时,网站的速度瓶颈就转到了网络的传输速度上,因此内容压缩后就可以很大程度上提升页面的加载速度。
gzip的配置参数
#开启gzip压缩功能
gzip on;
#vary header支持,该选项可以让前端的缓存服务器缓存经过gzip压缩的页面
gzip_vary on;
#设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取,默认值是0,不管页面是多大都进行压缩,建议设置成大于1K,如果小于1K可能会越压越大
gzip_min_length 612k;
#压缩缓冲区大小,表示申请4个单位为16K的内存作为压缩结果的流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果
gzip_buffers 128 128k;
#压缩比率,用来指定gzip压缩比, 1:压缩比最小,速度最快;9:压缩比最大,传输速度最快,但处理也最慢,也比较的消耗CPU资源
gzip_comp_level 6;
#用来指定压缩的类型,text/html 默认是会被压缩的,所以不指定也可以。
gzip_types text/plain text/javascript application/javascript application/x-javascript text/css application/json application/x-httpd-php image/jpeg image/png image/gif image/x-icon application/xml;
client_max_body_size 200M;
proxy_connect_timeout 10;
proxy_send_timeout 30;
proxy_read_timeout 60;
1、开启gzip压缩功能
gzip on;
2、vary header支持,该选项可以让前端的缓存服务器缓存经过gzip压缩的页面
gzip_vary on;
3、设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取,默认值是0,不管页面是多大都进行压缩,建议设置成大于1K,如果小于1K可能会越压越大
gzip_min_length 612k;
4、压缩缓冲区大小,表示申请4个单位为16K的内存作为压缩结果的流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果
gzip_buffers 128 128k;
5、压缩比率,用来指定gzip压缩比, 1:压缩比最小,速度最快;9:压缩比最大,传输速度最快,但处理也最慢,也比较的消耗CPU资源
gzip_comp_level 6;
6、用来指定压缩的类型,text/html 默认是会被压缩的,所以不指定也可以。
gzip_types text/plain text/javascript application/javascript application/x-javascript text/css application/json application/x-httpd-php image/jpeg image/png image/gif image/x-icon application/xml;
7、用于识别HTTP协议的版本
gzip_http_version 1.1
gzip_min_length参数设置需要从header头的Content-Length中获取,打开cmd窗口,输入内容:
curl -I -H "Accept-Encoding:gzip,deflate" "http://office.dmsd.tech"
特别注意: