一、gzip压缩
gzip模块可以启用压缩功能,其实是一种服务端的压缩,文件本身并没有压缩(gzip压缩只对文本文件作用较大,对于图片、视频等多媒体资源并无多大用处)
先做一个试验:我们以一个网页为例,这个网页有图片和文字,加载了css和js(其中css是腾讯新闻首页的css,js为jquery文件)
压缩前的大小为:
我们启用gzip压缩后来看看:
显然,对index.html进行了压缩,但是css和js都没有压缩(gzip对图片压缩效率不高,而且压缩程度并不高),这是为什么呢?
好吧,我们来学习一下gzip几个比较重要的指令
(1)gzip:这是一个开启或关闭gzip压缩的命令:
用法 :gzip on|off;
on代表启用,off代表不启用
可以在http段,location,if段内使用
(2)gzip_comp_level :代表压缩的级别
用法:gzip_comp_level [1-9];
压缩级别从1到9,压缩级别越高,文件被压缩的越小(当然不是级别越高越好,级别越高,压缩消耗的资源越大,而且到很高的级别,可压的空间并不大,一般默认为5)
(3)gzip_min_length:表示最小压缩的文件大小,单位是b(字节)
用法:gzip_min_length 1000;
即当文件小于1000b时不启用压缩(毕竟太小的文件压缩空间很小,反而浪费资源)
(4)gzip_types :可压缩的文件类型
用法:gzip_types MIME文件类型;
注:MIME文件类型可以写多个,多个用空格隔开。
默认只对text/html
上面的例子,我们也增加css和js的压缩:(默认有text/html所以不用加这个)
gzip_types text/css application/x-javascript
再看一下:
如何判断是否启用了gzip的功能呢,除了看文件大小,还可以在响应头中查看:
未查看gzip前:
启用gzip后:
二、浏览器缓存expire
开启浏览器缓存可以减少网络请求,让页面响应速度更快,为服务器节约更多的资源,nginx中启用浏览器缓存很简单(即告诉浏览器资源的)
用法:expires 缓存时间;
例如:expires 1d;
缓存时间可以使用时间如(1d表示1天,30s表示30秒)、max(max 指定“Expires”的值为 31 December 2037 23:59:59 GMT)或off(代表不启用浏览器缓存)
location ~ .+.(jpg|jpeg|png|gif)$ {
expires 1d;
}
只要是.jpg或jpeg或png或gif结尾的(即图片)的文件都缓存1天
我们查看一下请求头信息:当前时间为2015-01-20日14:02