首页 运维 网络学院 查看内容

启用IIS6中HTTP压缩(GZip压缩)的方法

2011-9-15 22:09 559 0

摘要:   IIS压缩并不是一项新技术,但对于站点而言,IIS压缩能起到很大的作用。在IIS服务器上启用IIS压缩功能之后,在IIS服务器把页面内容发送给浏览器之前,会在服务器上先把内容进行压缩,然后发送压缩...
关键词: IIS 服务器 nbsp adminscripts compression 文件 浏览器 cscript filters adsutil

  IIS压缩并不是一项新技术,但对于站点而言,IIS压缩能起到很大的作用。在IIS服务器上启用IIS压缩功能之后,在IIS服务器把页面内容发送给浏览器之前,会在服务器上先把内容进行压缩,然后发送压缩后的数据,浏览器接收到数据后,会自动进行解压,然后显示。由于在网络上传输的数据被压缩了,所以可以将页面内容更快的传送到浏览器,提高页面浏览速度。  虽然IIS服务器上对页面内容进行压缩会耗费一定的CPU时间,但这对于现在主流服务器CPU而言,已经不会造成什么问题。而且这点CPU时间与节省的数据传输时间相比,实在是太划算了。每次压缩过一个静态内容页面之后,IIS会将压缩后的文件缓存到磁盘上,这样可以避免下次再重复压缩,所以不会对 CPU 有太大的负担。如果你发现它并没有带来想象中的服务器性能提升,要禁用它也非常简单。它没有改变过你的站点内容,改变的仅是数据传输的方式而已。  在IIS服务器上启用IIS压缩虽然可以通过图形界面的IIS管理器完成,但有些配置仅仅通过IIS管理器是做不了的,所以,我们使用IIS的一个脚本工具来进行所有的管理和配置。  打开IIS管理界面,在"网站"标签上点右键->属性。  "服务"标签下的"HTTP 压缩":  根据需求选中 "压缩应用程序文件" 或者 "压缩静态文件"。  临时目录对应的文件夹,通常是"C:\WINDOWS\IIS Temporary Compressed Files",需要给 IUSR_机器名 写的权限。  下面的指令需要在服务器上的命令提示符中执行。  在IIS服务器上启用静态文件(。js、。css、。html之类)压缩:  cscript C:\Inetpub\adminscripts\adsutil.vbs set w3svc/filters/compression/parameters/HcDoStaticCompression true  在IIS服务器上启用动态文件(。asp之类)压缩:  cscript C:\Inetpub\adminscripts\adsutil.vbs set w3svc/filters/compression/parameters/HcDoDynamicCompression true  在静态文件压缩中添加".js”,".css”文件类型,要执行两条指令:  cscript C:\Inetpub\adminscripts\adsutil.vbs SET W3Svc/Filters/Compression/DEFLATE/HcFileExtensions "htm" "html" "txt" "js" "css"  cscript C:\Inetpub\adminscripts\adsutil.vbs SET W3Svc/Filters/Compression/GZIP/HcFileExtensions "htm" "html" "txt" "js" "css"  在动态文件压缩中添加".aspx”文件类型(SharePoint站点所有页面都是。aspx的),要执行两条指令:  cscript C:\Inetpub\adminscripts\adsutil.vbs SET W3SVC/Filters/Compression/Deflate/HcScriptFileExtensions "asp" "dll" "exe" "aspx"  cscript C:\Inetpub\adminscripts\adsutil.vbs SET W3SVC/Filters/Compression/gzip/HcScriptFileExtensions "asp" "dll" "exe" "aspx"  将默认的压缩率提高,也是两条指令:  cscript C:\Inetpub\adminscripts\adsutil.vbs SET W3Svc/Filters/Compression/GZIP/HcDynamicCompressionLevel "9"  cscript C:\Inetpub\adminscripts\adsutil.vbs SET W3Svc/Filters/Compression/DEFLATE/HcDynamicCompressionLevel "9"  最后,执行"iisreset",重起IIS  除此之外还可以通过修改iis配置数据库以达到目的:  在IIS管理界面,"计算机名" 标签上点右键->属性。  选择 "允许直接编辑配置数据库"  打开 "C:\WINDOWS\system32\inetsrv\MetaBase.xml",  在 <IIsCompressionScheme Location="/LM/W3SVC/Filters/Compression/deflate">节和<IIsCompressionScheme Location="/LM/W3SVC/Filters/Compression/gzip">节,  修改HcDynamicCompressionLevel为9。(性能/压缩比最好)  修改HcFileExtensions为"htm html txt js css" (可扩展,带引号)  修改HcScriptFileExtensions为"asp exe dll aspx" (可扩展,带引号)  保存文件。  关闭 "允许直接编辑配置数据库"选项。  启用IIS压缩后,到底能为我们节省多少数据传输呢?我们可以简单的测试一下。我们使用Microsoft Fiddle,这个好用且强大的工具。它原理上是一个代理,能让浏览器通过它去获取HTTP内容,它则自动记录浏览器的访问历史数据。Fiddle可以在http://www.fiddlertool.com/fiddler/version.asp下载。  首先,关闭IIS压缩,清空浏览器缓存,然后在IE中访问默认站点首页,在Fiddle中记录下的访问历史数据如下:  Request Count:     29  Bytes Sent:     11,089  Bytes Received: 676,934  这些信息表示,浏览器一共请求了29项资源,服务器一共向浏览器发送了676K数据。676K!这仅仅是默认的站点首页哦!  然后打开IIS压缩功能,再清空浏览器缓存,再次访问一下首页,Fiddle中记录的信息如下:  Request Count:     29  Bytes Sent:     11,089  Bytes Received: 230,276  可以看到,仅仅通过简单的启用IIS压缩功能,默认首页所请求的数据大小就从676K减少到了230K。  ps:此文乃网上转载并整理,发现如下问题  如果清空客户端的IE缓存后再次访问没有效果,可以通过应用程序池回收资源  将HcScriptFileExtensions的参数设置为空字符串会降低服务器性能。(所有的动态响应都以压缩方式发送)  相关的HTTP压缩软件: Port80 Software ZipEnable  ZipEnable 是少数微软特别推荐的产品之一,而且它与IIS 6兼容,通过配置IIS 6的设置,它可以将IIS6的HTTP压缩功能进一步在目录级别上进行进行控制  测试是否启用gzip:www.port80software.com/tools/compresscheck
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部