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压缩时遇到了困难,可在此跟帖评论与交流,菜鸟之家_电脑爱好者会竭尽全力为大家解答。
资源中心 2025-01-03
资源中心 2023-10-25
生活百科 2024-06-21
生活百科 2021-04-14
生活百科 2021-06-22
生活百科 2021-09-08
生活百科 2017-07-20
生活百科 2018-08-02
生活百科 2014-07-01
生活百科 2021-05-01
电脑应用 2022-02-28
生活百科 2020-10-30
资源中心 2019-12-08
生活百科 2020-06-28
电脑应用 2023-02-07
生活百科 2018-07-17
资源中心 2012-03-20
生活百科 2025-01-03
生活百科 2019-02-22
电脑应用 2019-07-29
扫码二维码
获取最新动态