网页启用Gzip压缩 提高浏览速度

 2012-10-17    559  

Gzip压缩我很早已经就启用了,不过从未与大家分享过。近期由于备案问题,临时更换服务器,结果忘了启用Gzip压缩,周末利用空余时间启用了Gzip压缩,并把全部过程记录下来,与大家分享。

启用Gzip压缩的好处

它的好处显而易见,提高网页浏览速度,无论是之前说的精简代码、压缩图片都不如启用Gzip来的实在。下图为启用Gzip后的效果。
菜鸟之家_电脑爱好者
Gzip压缩效率非常高,通常可以达到70%的压缩率,也就是说,如果你的网页有30K,压缩之后就变成了9K左右。

第一步:打开IIS,启用HTTP压缩服务
菜鸟之家_电脑爱好者
右击"网站"->"属性",选择"服务"。在"HTTP压缩"框中选中"压缩应用程序文件"和" 压缩静态文件",按需要设置"临时目录"和"临时目录的最大限制";

第二步:启用web服务
菜鸟之家_电脑爱好者
第三步:修改MetaBase.xml

开始 > 运行中输入 c:\windows\system32\inetsrv,找到 MeteBase.xml,先备份,再修改。

需要更改的有两个地方,一个是Location ="/LM/W3SVC/Filters/Compression/deflate"的地方,另一个则是Location ="/LM/W3SVC/Filters/Compression/gzip",将这两个地方修改后就可以打开GZIP了。两个地方的内容更改完全一致,所以只说一遍就可以了。

将HcDoDynamicCompression设置为“TRUE”,这个是用来压缩动态文件的,当然如果你不打算压缩动态文件,保持“FALSE”状态也可以,而HcScriptFileExtensions中是需要压缩的动态文件后缀,如asp、php、aspx等。

将HcDoStaticCompression和HcDoOnDemandCompression设置为“TRUE”,这是用来开启压缩静态文件的,没有理由不开启。在HcFileExtensions中添加需要压缩的静态文件后缀,如html、css、xml等。

HcDynamicCompressionLevel和HcOnDemandCompLevel这两个属性,表示的是GZIP的压缩率,可以填写0-10之间的数字,默认为0,通常来说建议设置为9,这是最具有性价比的选择。(图片中把php加到静态文件里面了,大家就无视吧,这是很久以前配置的,反正网站是静态的,php压缩不压缩无所谓)

搜索Location ="/LM/W3SVC/Filters/Compression/deflate"

仔细核对下代码:
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="0"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="FALSE"
HcDynamicCompressionLevel="0"
HcFileExtensions="htm
html
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="asp
dll
exe"
>
</IIsCompressionScheme>
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="1"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="0"
HcFileExtensions="htm
html
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="asp
dll
exe"
>
</IIsCompressionScheme>

替换成:

<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="1"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="10"
HcFileExtensions="html
htm
css
js
xml
gif
jpg
png
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="asp
aspx
php 
dll
exe"
>
</IIsCompressionScheme>
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="2"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="10"
HcFileExtensions="html
htm
css
js
xml
gif
jpg
png
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="asp
aspx
php
dll
exe"
>
</IIsCompressionScheme>

修改好后,在服务中停止IIS Admin Service 服务。
菜鸟之家_电脑爱好者
然后在保存MeteBase.xml,需要注意的是,在修改MetaBase.xml文件时,可能会出现无法保存的情况,系统会提示“文件正在使用,无法保存”,要解决这个问题,打开IIS,右击“本地计算机”-》“属性”,在“Internet信息服务”中勾选“允许直接编辑配置数据库”,确定后,就可以顺利的编辑MetaBase.xml文件了。保存好后再启动IIS。这样Gzip压缩就启用成功了。

最后,测试Gzip压缩是否成功,可以到站长工具 http://tool.chinaz.com/Gzips/ 进行检测。

提示:

本文仅针对windows的IIS服务器上演示的,VPS主机、独立服务器均可以实现,虚拟主机用户需要咨询空间商(一般虚拟主机都启用了Gzip)

如果你按上述的步骤完成配置并用上面的网址测试后还是不行的话,请检查下面几项,保证解决问题!
1、检查MetaBase.xml里是不是你打错字或改出问题了,恢复下备份重新改一下试试;
2、检查Web服务扩展里的名字,这个我没测试,应该什么名字都可以的,但为了保证不出问题还是按教程上的名字来;
3、如果更改了Gzip压缩的默认存储位置,检查你设定的目录是否给了IIS_WPG组的写入权限,如果没有加上;
4、如果你的站在启用Gzip压缩时遇到了困难,可在此跟帖评论与交流,菜鸟之家_电脑爱好者会竭尽全力为大家解答。

上一篇>>Z-Blog与WordPress站长究竟该选择谁

=========================================

下一篇>>智能手机和非智能机的区别