一. HTTP压缩概述
HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩采用通用的压缩算法如gzip等压缩HTML、JavaScript或 CSS文件。压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。当然,同时也会增加一点点服务器的负担。Gzip是比较常见的一种HTTP 压缩算法。
现代的浏览器IE6和Firefox都支持客户端Gzip,也就是说,在服务器上的网页,传输之前,先使用Gzip压缩再传输给客户端,客户端接收之后由浏览器解压显示,这样虽然稍微占用了一些服务器和客户端的CPU,但是换来的是更高的带宽利用率。对于纯文本来讲,压缩率是相当可观的。如果每个用户节约50%的带宽,那么你租用来的那点带宽就可以服务多一倍的客户了。
二.IIS6 开启 GZIP功能
首先在“开始菜单”—“管理工具”—打开“Internet 信息服务(IIS)管理器”;
左侧显示计算机中IIS列表,在“网站”上右键选择属性;
打开网站属性界面,单击“服务”标签,选中“压缩应用程序文件”和“压缩静态文件”,同时根据情况设置临时目录的最大容量,云主机可以不修改“临时目录”位置,但VPS由于C盘大小有限,建议更改临时文件到D盘等,并根据硬盘大小定义“最大容量”。
“压缩应用程序文件”为压缩动态文件,如:aspx、asp、php、jsp等;
“压缩静态文件”为压缩动静态文件,如:shtm、shtml、js、css、swf、mid、xml、mp3等静态文件类型;
返回Internet信息服务(IIS)管理器,右击“Web服务扩展”,弹出Web服务扩展菜单;选择“增加一个新的Web服务扩展(A)”;
在“新建Web服务扩展”框中输入扩展名“GZIP”,添加“要求的文件”为C:WINDOWSsystem32inetsrvgzip.dll,其中 Windows系统目录根据您的安装可能有所不同,选中“设置扩展状态为允许”;
到这一步,我们已经基本完成了GZIP的开启设置,已经能初步实现HTTP压缩功能。
接下来我们还可以对GZIP设置进行优化,提示压缩性能。
首先,我们在“运行菜单”中输入“iisreset –stop”停止IIS服务,然后进行目录C:WINDOWSsystem32inetsrv,找到MetaBase.xml并用记事本打开该文件(编辑前建议先复制保留一份该文件到其他目录)。
搜索并找到 metabase.xml 文件中的<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"片段和<IIsCompressionScheme 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="TRUE" ----------默认是”FALSE”,如果需要开启静态压缩就设置为"TRUE"
HcDynamicCompressionLevel="0" --------动态压缩率“9”性能比最好。默认是0
HcFileExtensions="htm html txt" -------要压缩的静态后缀名,可以添加:shtm、shtml、js、css、swf、mid、xml、mp3等
HcOnDemandCompLevel="10" --------静态压缩率
HcPriority="1"
HcScriptFileExtensions= asp dll exe" -------要压缩的动态后缀名,可添加aspx、asp、php、jsp等
>
</IIsCompressionScheme>
注意:“Compression/deflate”和“Compression/gzip”两个片段都可以修改。动态压缩等级,HcDynamicCompressionLevel 建议设置为“9” 具有最佳性价比。
修改完成后,保存该文件,然后在“运行菜单”输入:iisreset –start重新启动IIS服务,并测试GZIP功能是否正常。