提高站点的访问速度,增加服务器资源利用率的方法有很多。其中我觉得最实用的一个方案就是开启IIS自带的Gzip压缩功能。

已windows server 2003的IIS6.0为例,具体操作步骤如下:

1、在 “IIS 管理器” 中,打开 “网站”---“属性” 对话框,切换到 “服务” 页卡,选中两个压缩选项。

 

 

2、新增一个服务扩展,路径为 “%windir%\System32\inetsrv\gzip.dll”。添加完成后,允许该扩展使用。

 

 

3、在 “管理工具 > 服务” 中,停止 “IIS Admin Service”。

注:停止该服务时会一起停止SSL和WWW服务,其实直接运行iisreset -stop我觉得会更方便一些

4、用记事本打开 “%windir%\system32\inetsrv\MetaBase.xml”,找到 “IIsCompressionScheme”,按下述方法修改、保存。(建议修改前先做备份)

如果需要压缩动态文件,则将 HcDoDynamicCompression设置为”TRUE”,并在HcScriptFileExtensions中增加您要压缩的动态文件后缀名,如aspx (由于我要优化的系统中,做了 html -> aspx 的 URL Rewrite,所以将 html、htm 也加入了)。
如果需要压缩静态文件,则将HcDoStaticCompression和HcDoOnDemandCompression设置为 “TRUE”,并在HcFileExtensions中增加您需要压缩的静态文件后缀名,如xml、css等。 
HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的压缩率,数字(0~9)越小压缩率越低。

 

 

5、iisreset或者重启服务器。

6、测试进入站长工具站点“http://tool.chinaz.com/Gzips/”,输入需要测试的站点URL,获得信息,73%的压缩率,效果不错哦:)

 

 

 

后记:

1、附件中是在实际应用中我自己修改的MetaBase.xml文件

2、基本步骤可以参考微软官方指导,直接一点的方式通过命令行执行如下命令启用对动态/静态内容的压缩输出:

 
  
  1. appcmd set config /section:urlCompression /doDynamicCompression:True 
  2. appcmd set config /section:urlCompression /doStaticCompression:True 

3、关于压缩额外文件扩展名:

IIS 6.0 上压缩额外的文件扩展名
修改 MetaBase.xml 文件中 HcFileExtensions 添加额外的文件扩展名。

IIS 7.0 上压缩额外的文件扩展名
修改 ApplicationHost.config 文件,添加合适的 mimeType 并指定激活. 打开文件参考原有的行照葫芦画瓢就成。可能要设置多次才会成功,因为 mimeType 定义可能有些歧义。