Nginx开启Gzip压缩大幅提高页面加载速度及相关测试
源:http://www.slyar.com/blog/nginx-gzip-compressed.html
评:增加一个contenttypeapplication/javascript
文章作者:姜南(Slyar)文章来源:SlyarHome(www.slyar.com)转载请注明,谢谢合作。
刚刚给博客加了一个500px相册插件,lightbox引入了很多js文件和css文件,页面一下子看起来非常臃肿,所以还是把Gzip打开了。
环境:Debian6
1、Vim打开Nginx配置文件
vim/usr/local/nginx/conf/nginx.conf
2、找到如下一段,进行修改
gzipon;
gzip_min_length1k;
gzip_buffers416k;
#gzip_http_version1.0;
gzip_comp_level2;
gzip_typestext/plainapplication/x-javascriptapplication/javascripttext/cssapplication/xmltext/javascriptapplication/x-httpd-phpimage/jpegimage/gifimage/png;
#gzip_varyoff;
gzip_disable"MSIE[1-6]\.";
3、解释一下
第1行:开启Gzip
第2行:不压缩临界值,大于1K的才压缩,一般不用改
第3行:buffer,就是,嗯,算了不解释了,不用改
第4行:用了反向代理的话,末端通信是HTTP/1.0,有需求的应该也不用看我这科普文了;有这句的话注释了就行了,默认是HTTP/1.1
第5行:压缩级别,1-10,数字越大压缩的越好,时间也越长,看心情随便改吧
第6行:进行压缩的文件类型,缺啥补啥就行了,JavaScript有两种写法,最好都写上吧,总有人抱怨js文件没有压缩,其实多写一种格式就行了
第7行:跟Squid等缓存服务有关,on的话会在Header里增加"Vary:Accept-Encoding",我不需要这玩意,自己对照情况看着办吧
第8行:IE6对Gzip不怎么友好,不给它Gzip了
4、:wq保存退出,重新加载Nginx
/usr/local/nginx/sbin/nginx-sreload
5、用curl测试Gzip是否成功开启
curl-I-H"Accept-Encoding:gzip,deflate""http://www.slyar.com/blog/"
HTTP/1.1200OK
Server:nginx/1.0.15
Date:Sun,26Aug201218:13:09GMT
Content-Type:text/html;charset=UTF-8
Connection:keep-alive
X-Powered-By:PHP/5.2.17p1
X-Pingback:http://www.slyar.com/blog/xmlrpc.php
Content-Encoding:gzip
页面成功压缩
curl-I-H"Accept-Encoding:gzip,deflate""http://www.slyar.com/blog/wp-content/plugins/photonic/include/css/photonic.css"
HTTP/1.1200OK
Server:nginx/1.0.15
Date:Sun,26Aug201218:21:25GMT
Content-Type:text/css
Last-Modified:Sun,26Aug201215:17:07GMT
Connection:keep-alive
Expires:Mon,27Aug201206:21:25GMT
Cache-Control:max-age=43200
Content-Encoding:gzip
css文件成功压缩
curl-I-H"Accept-Encoding:gzip,deflate""http://www.slyar.com/blog/wp-includes/js/jquery/jquery.js"
HTTP/1.1200OK
Server:nginx/1.0.15
Date:Sun,26Aug201218:21:38GMT
Content-Type:application/x-javascript
Last-Modified:Thu,12Jul201217:42:45GMT
Connection:keep-alive
Expires:Mon,27Aug201206:21:38GMT
Cache-Control:max-age=43200
Content-Encoding:gzip
js文件成功压缩
curl-I-H"Accept-Encoding:gzip,deflate""http://www.slyar.com/blog/wp-content/uploads/2012/08/2012-08-23_203542.png"
HTTP/1.1200OK
Server:nginx/1.0.15
Date:Sun,26Aug201218:22:45GMT
Content-Type:image/png
Last-Modified:Thu,23Aug201213:50:53GMT
Connection:keep-alive
Expires:Tue,25Sep201218:22:45GMT
Cache-Control:max-age=2592000
Content-Encoding:gzip
图片成功压缩
curl-I-H"Accept-Encoding:gzip,deflate""http://www.slyar.com/blog/wp-content/plugins/wp-multicollinks/wp-multicollinks.css"
HTTP/1.1200OK
Server:nginx/1.0.15
Date:Sun,26Aug201218:23:27GMT
Content-Type:text/css
Content-Length:180
Last-Modified:Sat,02May200908:46:15GMT
Connection:keep-alive
Expires:Mon,27Aug201206:23:27GMT
Cache-Control:max-age=43200
Accept-Ranges:bytes
最后来个不到1K的文件,由于我的阈值是1K,所以没压缩