对于多数以文本为主的站点来说,文本自身内容占流量的绝大部分。虽然单个文本体积并不算大,但是如果数量众多的话,流量还是相当可观。启用GZIP以后, 可以大幅度减少所需的流量(如上图所示,本站首页大小从28K压缩到了7K)。以下是以nginx服务器为例开启gzip的一般代码。
#启用gzip
gzip on;
#需要压缩文件的最小尺寸,单位是B
gzip_min_length 1100;
#gzip文件缓存大小
gzip_buffers 4 8k;
#gzip压缩文件格式,以下涵盖了一般所需的类型
gzip_types text/plain text/css application/x-javascript;
#gzip压缩等级,数值越高压缩得越狠,也越占资源
gzip_comp_level 4
以上代码可以插入到 http {...}整个服务器的配置里,也可以插入到虚拟主机的 server {...}或者下面的location模块内。
值得注意的是纯文本类文件的Gzip压缩,效果颇佳,所有的浏览器都能很好支持。而图片格式不不论是PNG/GIF还是JPG,在IE6下支持都非常差,甚至会出现卡死的情况。一个可行的办法是可以在GZIP配置里面加入一行
gzip_disable msie6;
然而实际情况是图片实际不需要压缩——当然我是指网络传输格式的,这些文件已经高度压缩过了(明证是用7Z格式压缩同样为300M大小的文本和图片格式,前者可以压到2M,后者几乎大小不变),启用GZIP不但相当占用资源,还会起负面效果。
最后需要说明的是GZIP是否起作用,可以用网页GZIP压缩检测工具来测试。