您的位置:首页 > 运维架构 > Nginx

Nginx开启gzip压缩

2016-05-21 20:04 411 查看
Nginx gzip模块提供了压缩文件内容的功能,用户请求的内容在发送到用户客户端之前,nginx会根据一些具体的策略实施压缩,以节约网站出口带宽,同时加快数据传素效率,提升用户体验。

优点:

发送给用户的内容变小了,用户访问页面的速度快了,提升用户体验。

节约带宽成本。

缺点:

额外浪费一些cpu资源。

需要和不需要压缩的对象:

纯文本内容压缩比例很高,因此纯文本的内容最好进行压缩,例如html, js, css, xml, shtml。

被压缩的纯文本文件最好大于1KB,由于压缩算法的特殊原因,极小的文件压缩后可能反而变大。

图片、视频一般都经过压缩,因此不再建议压缩,不再额外耗费cpu。

gzip相关参数:

gzip on; #开启gzip压缩功能

gzip_min_length 1k;  #默认为0,表示不管页面多大都进行压缩,建议设置成大于1k, 如果小于1k可能会越压越大

gzip_buffers 4 32k;  #压缩缓冲区大小,表示申请4个单位为16k的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果

gzip_http_version 1.1; #压缩版本,前端为squid2.5时使用1.0, 用于设置识别HTTP协议版本,默认时1.1,目前大部分浏览器已经支持GZIP解压,使用默认即可

gzip_comp_level 2; #压缩比例,1压缩比最小,处理速度最快;9压缩比最大,传输速度快,但处理慢,也比较耗CPU

gzip_types text/css text/html application/javascript; #指定压缩的类型,text/html类型总是会被压缩,这个就是HTTP原理部分讲的媒体类型

gzip_vary on; #vary header支持,该选项可以让前端的缓存服务器缓存经过gzip压缩的页面,例如用squid缓存经过nginx压缩的数据

完整的配置如下:

注意:不同的nginx版本中,gzip_types的配置可能会有不同,对应的文件类型,请查看conf/目录下的mime.types文件

gzip on;

gzip_min_length 1k;

gzip_buffers 4 32k;

gzip_http_version 1.1;

gzip_comp_level 3;

gzip_types text/css text/html text/xml application/javascript;

gzip_vary on;

查看是否启用gzip:
curl -I -H "Accept-Encoding: gzip,deflate"  http://127.0.0.1/index.html
gzip效果检查,大部分浏览器的debug功能均可看到压缩前后的数据传输大小。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: