IIS6之Http压缩说明及配置方法

2008/10/6 1:40:22 来源:互联网 【 】 浏览:6164次

使用 HTTP 压缩

如果您的站点使用了很大的带宽,或者您希望更加有效地使用带宽,请考虑启用 HTTP 压缩。HTTP 压缩在启用压缩的浏览器和 IIS 之间提供了更短的传输时间。既可以只压缩静态文件,又可以同时压缩静态文件和应用程序响应。如果网络带宽受到限制,使用 HTTP 压缩会很有用(至少对于静态文件来说),除非处理器利用率已经很高。

动态处理会影响 CPU 资源。对动态响应启用压缩后,每次请求动态响应时都会进行压缩。这意味着并不缓存动态响应,每次请求动态响应时,服务器可能需要更多的 CPU 周期来压缩和发送响应。已压缩的静态响应可以被缓存,因此不会像动态响应那样影响 CPU 资源。

HTTP 压缩的工作原理

IIS 在接收到请求时,将检查浏览器是否允许压缩。然后 IIS 会检查文件扩展名,以确定请求的文件是否为静态文件或包含动态内容。如果文件包含静态内容,IIS 将查看以前是否请求过该文件并且已将该文件以压缩格式存储在临时压缩目录中。如果文件没有以压缩格式存储,IIS 会将未压缩的文件发送到浏览器,并在临时压缩目录中添加此文件的压缩副本。如果文件以压缩格式存储,IIS 会将压缩过的文件发送给浏览器。在浏览器首次请求之前,所有文件都不压缩。

如果文件包含动态内容,IIS 将在生成此响应时进行压缩并将压缩后的响应发送给浏览器。不存储此文件的副本。

压缩静态文件的性能代价较小,而且通常只压缩一次,因为该文件随后被存储在临时压缩目录中。压缩动态生成的文件的代价要高一些,因为它们并不存储,并且每次请求时都必须重新生成。在浏览器上展开文件的代价非常小。压缩文件的下载速度更快,所以对于提高使用有限带宽的网络连接(如调制解调器连接)的所有浏览器的性能特别有好处。

默认情况下,压缩文件的截止日期是 1997 年 1 月 1 日,以防止代理服务器将缓存的压缩文件副本发送到未启用压缩的浏览器。这也意味着浏览器在下一次用户请求时并不显示文件的缓存副本,而是返回服务器请求新副本。

启用 HTTP 压缩

如果服务器生成大量的动态内容,则需要考虑压缩造成的额外处理代价是否值得付出。如果 % 处理器时间计数器已经达到或超过 80%,则不建议启用 HTTP 压缩。

测试 HTTP 压缩

  1. 要创建一个基线,请使用系统监视器记录几天内“处理器”对象的 % 处理器时间计数器的值。此计数器有一个总实例以及系统中每个处理器的单独实例。(如果服务器有多个处理器,应该同时观察单个处理器和总的处理器情况,以发现工作量分配不平衡之处)此外,还应该记录“网络接口”对象的发送的字节数/秒计数器。
  2. 启用压缩并继续在一段时间内记录这些计数器的值,最好是几天,这样就能得到好的对比依据。
  3. 将未压缩时的值和压缩过的值相比较。

注意 注意 如果在测试期间看到阻塞或瓶颈现象,应立即停止测试。任意一个计数器的值明显下降都意味着与未启用压缩时相比,启用压缩已降低了性能。

要点 要点 您必须是本地计算机上 Administrators 组的成员或者必须被委派了相应的权限,才能执行下列步骤。作为安全性的最佳操作,请使用不属于 Administrators 组的帐户登录计算机,然后使用运行方式命令以管理员身份运行 IIS 管理器。在命令提示符下,键入 runas /user:administrative_accountname "mmc %systemroot%\system32\inetsrv\iis.msc"

启用 HTTP 压缩

  1. 在 IIS 管理器中,展开本地计算机,右键单击“网站”文件夹,然后单击“属性”。
  2. 单击“服务”选项卡,然后在“HTTP 压缩”部分,选中“压缩应用程序文件”复选框以压缩应用程序文件。
  3. 选中“压缩静态文件”复选框可以只压缩要传送给启用压缩的客户端的静态文件。
  4. 在“临时目录”框中,输入某个本地目录的路径,或者单击“浏览”来查找目录。压缩文件保存在这个临时目录中。该目录必须在 NTFS 分区的本地驱动器上。该目录不能是压缩目录,而且不能被共享。
  5. 在“临时目录的最大容量”下面,单击某个文件夹大小选项。如果单击“限制为(兆字节)”选项,并在它旁边的文本框中输入数值,IIS 会在达到设置的限制时根据“最近最少使用”原则自动清理临时目录。
  6. 单击“应用”,然后单击“确定”。
IIS 6.0中配置HTTP压缩的步骤如下:
  • 打开Internet信息服务(IIS)管理器,右击"网站"->"属性",选择"服务"。在"HTTP压缩"框中选中"压缩应用程序文件"和"压缩静态文件",按需要设置"临时目录"和"临时目录的最大限制";
  • 在Internet信息服务(IIS)管理器,右击"Web服务扩展"->"增加一个新的Web服务扩展...",在"新建Web服务扩展"框中输入扩展名"HTTP Compression",添加"要求的文件"为C:\WINDOWS\system32\inetsrv\gzip.dll,其中Windows系统目录根据您的安装可能有所不同,选中"设置扩展状态为允许";
  • 使用文本编辑器打开C:\Windows\System32\inetsrv\MetaBase.xml(建议先备份),找到Location ="/LM/W3SVC/Filters/Compression/gzip",如果需要压缩动态文件,则将HcDoDynamicCompression设置为"TRUE",并在HcScriptFileExtensions中增加您要压缩的动态文件后缀名,如aspx;如果需要压缩静态文件,则将HcDoStaticCompression和HcDoOnDemandCompression设置为"TRUE",并在HcFileExtensions中增加您需要压缩的静态文件后缀名,如xml、css等;HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的压缩率,数字越小压缩率越低;
  • 编辑完毕后保存MetaBase.xml文件;如果文件无法保存,则可能IIS正在使用该文件。打开"开始"->"管理工具"->"服务",停止"IIS Admin Service"后,即可保存;
  • 最后,重新启动IIS。可以到HTTP压缩测试网站验证结果。
  • 上一篇文章:经营性网站与非经营性网站区分
  • 下一篇文章:asp中数组用法
    当前地址:https://dns2003.com:443/help/hlp_dtl.asp?nid=10000228
    更多帮助登录: http://www.dns2003.com/help
    业务请咨询E网时代客服部