IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Nginx 的 Gzip 压缩率多少合适

    David Yin发表于 2015-11-19 20:58:30
    love 0

    最近的几台 VPS 上,用的都是 Nginx 作为 Web 服务器,通常我会用最新的版本,比如前几天在安装的就是 Nginx 1.9.7。
    在配置 Nginx 的时候,会遇到一个参数就是有关 Gzip 的。首先要打开 Gzip ,然后就是要设置 Gzip 的压缩比率, gzip_comp_level。

    根据 Nginx 的手册。


    Syntax: gzip_comp_level level;
    Default: gzip_comp_level 1;
    Context: http, server, location

    gzip 的压缩参数值的范围是从1到9。很多参考资料上写的都是建议用4,那么到底多少合适,为什么呢?

    刚好安装的是一个 phpBB 的论坛程序,在安装完成后,均是默认值的情况下,把这个参数,从1 到 9,以及关闭 gzip 的情况都测试了一下,看看传输的数据有多少。
    压缩的内容主要就是CSS和js文件,以及html文件。

    整个页面,包括各种图片,就是这个页面所有的内容的数据传输,简单测试结果如下:

    关闭gzip: 317KB

    gzip 压缩参数 1: 125KB

    gzip 压缩参数 2: 121KB

    gzip 压缩参数 3: 119KB

    gzip 压缩参数4: 113KB

    gzip 压缩参数5: 111KB

    gzip 压缩参数 6: 110KB

    gzip 压缩参数 7: 110KB

    gzip 压缩参数 8: 110KB

    gzip 压缩参数 9: 110KB

    今天我又做了一个测试,如下。

    还是这个程序,不过我测试的时候,分别记录了几个 css 文件和 js 文件的压缩情况。

    详细的数据就不贴了,说个总数吧,一共是1个HTML文件,5个CSS文件,4个JS文件,都是数据文件比较大的,也很常见的几个,比如jquery之类的。

    在没有开启压缩的情况下,一共是296.6KB,在不同的压缩参数下,其数据量会逐渐减少,从下图来看,可以看出,最左侧的是gzip关闭,就是原始的数据大小,往右就是 gzip_comp_level 参数从 1 到 9,在参数从5之后,就几乎没有什么变化了。

    gzip_comp_level_difference.png点击上图可以看到详细数据,想想还是把具体的数字也分享出来,用的是Google Sheets。

    当然随着压缩率的提高,所消耗的CPU也会越来越多,建议值是4,但是DavidYin的建议是直接用5。因为每提高一级压缩,数据就减少大约2到3KB,而从5到6,只有减少大约0.5KB,再之后也几乎没有什么变化了。所以就直接设置 gzip_comp_level 5

    对于CPU的消耗,我觉得还是不是那么的厉害,毕竟静态文件,还可以设置过期头,让它的有效缓存期长一点,比如设置成半年一年的。实际上CPU的压力在这上面是没有那么大的。

    把网站放在Dreamhost,通过LinkWorth获取广告收益,每个链接高达$40。
    好用的VPN
    Site Meter

    延伸阅读

    • CloudFront 和 Nginx 服务器 CORS 的配置
    • 重建服务器
    • 2015年底网站的最佳配置
    • 推荐一本书: Ubuntu Server 最佳方案(第2版)
    • Joomla 3性能优化要点
    • 一次因木马而造成网站被宕机的事件
    • Gzip压缩内容,以提高页面载入速度
    • 让Amazon CloudFront也支持GZ压缩
    • Woopra最近很不稳定
    • 网站迁移中


沪ICP备19023445号-2号
友情链接