我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 运维优化 > Nginx开启Gzip压缩提升页面加载速度
总共48087条微博

动态微博

查看: 1913|回复: 0

Nginx开启Gzip压缩提升页面加载速度

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2016-04-21 13:18:18 |只看该作者 |倒序浏览
    最近使用 echarts绘图,需要加载echarts-all.js,源码文件居然高达900KB,执行时间为3.75秒,严重影响了页面加载速度。

    项目环境  linux,Nginx

    还好Nginx 内置了Gizp 压缩。

    一、压缩效果
    echarts-all.js   压缩前 900KB  压缩后 375KB,时间差距 3.75秒 缩短到  1.58秒, 大大减少了网络传输速度,当然会对服务器CPU有一定影响。
    同时开启对  css  xml  以及部分图片格式进行压缩处理。

    压缩前:



    压缩后:



    二、实现方式

    1、Vi打开Nginx配置文件
    vi /usr/local/nginx/conf/nginx.conf

    2、找到如下一段,进行修改
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types text/plain application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_vary off;
    gzip_disable "MSIE [1-6]\.";
    以上代码可以插入到 http {...}整个服务器的配置里,也可以插入到虚拟主机的 server {...}或者下面的location模块内。

    3、解释一下
    gzip
    决定是否开启gzip模块
    example:gzip on;
    gzip_buffers
    设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间
    param2:int(k) 后面单位是k
    example: gzip_buffers 4 8k;
    gzip_comp_level
    设置gzip压缩等级,等级越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大
    param:1-9
    example:gzip_com_level 1;
    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_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_types
    设置需要压缩的MIME类型,非设置值不进行压缩
    param:text/html|application/javascript|text/css|application/xml
    example:gzip_types text/html;
    对于多数以文本为主的站点来说,文本自身内容占流量的绝大部分。虽然单个文本体积并不算大,但是如果数量众多的话,流量还是相当可观。启用GZIP以后,可以大幅度减少所需的流量(如上图所示,本站首页大小从28K压缩到了7K)。以下是以nginx服务器为例开启gzip的一般代码。
    gzip_vary
    跟Squid等缓存服务有关,on的话会在Header里增加"Vary: Accept-Encoding",我不需要这玩意,自己对照情况看着办吧
    gzip_disable
    IE6对Gzip不怎么友好,不给它Gzip了

    4、:wq保存退出,重新加载Nginx
    /usr/local/nginx/sbin/nginx -s reload



    科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、科帮网管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    关闭

    站长推荐上一条 /1 下一条

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表