设为首页 收藏本站
查看: 890|回复: 0

[经验分享] http压缩方法(IIS 6.0 与IIS 7.0的详解)

[复制链接]

尚未签到

发表于 2015-8-12 10:52:49 | 显示全部楼层 |阅读模式
  在网上看了有关这方面的博客,再加上自己的实践,整理了一下,希望对大家有所帮助
  本片文章采用两种压缩方法:一种是在IIS上开启GZIP压缩,另一种方法是用CompressionModule压缩模块。下面我将分别对IIS 6.0 和 IIS 7.0 的两种方法进行举例。
  IIS 6.0
  部署IIS 6.0 开启GZIP压缩
  1、打开Internet信息服务(IIS)管理器,右击“网站”-->属性”,选择“服务”。进行如图一配置:
DSC0000.png
  
  图一
  2、在Internet信息服务(IIS)管理器,右击“Web服务扩展”-->“添加一个新的Web服务扩展”,在“新建Web服务扩展”框中输入扩展名“HTTP Compression”,添加“要求的文件”为C:\WINDOWS\system32\inetsrv\gzip.dll,其中Windows系统目录根据您的安装可能有所不同,选中“设置扩展状态为允许”;(见图二)
DSC0001.png
  图二
  3、使用文本编辑器打开C:\Windows\System32\inetsrv\MetaBase.xml(建议先备份),
  找到Location =“/LM/W3SVC/Filters/Compression/gzip用于设置gzip压缩
  如果需要压缩动态文件,则将HcDoDynamicCompression设置为”TRUE“,
  并在HcScriptFileExtensions中增加您要压缩的动态文件后缀名,如aspx;
  如果需要压缩静态文件,则将HcDoStaticCompression和HcDoOnDemandCompression设置为”TRUE“,
  并在HcFileExtensions中增加您需要压缩的静态文件后缀名,如xml、css等;
  HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的压缩率,数值在0-10, 默认为0。
  HcDynamicCompressionLevel属性说明:HcDynamicCompressionLevel Metabase Property
  HcOnDemandCompLevel 属性说明:HcOnDemandCompLevel Metabase Property
  说明: 这两个属性值一般推荐设置为9, 具有最佳性价比。



</IIsCompressionScheme>
<IIsCompressionScheme    Location ="/LM/W3SVC/Filters/Compression/gzip"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="1"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="9"
HcFileExtensions="htm
js
css
swf
html
txt"
HcOnDemandCompLevel="9"
HcPriority="1"
HcScriptFileExtensions="asp
aspx
dll
exe"
>
</IIsCompressionScheme>
  注意:
  1、在编辑MetaBase.xml前需要停止IIS(开始-->管理工具 --> 服务 找到 IIS Admin Service然后停止)
  2、修改完成后开启IIS Admin Service
  CompressionModule压缩模块
  1、首先,将DC.Web.HttpCompress.dll放到项目的bin目录。
  2、配置web.config代码如下:


DSC0002.gif DSC0003.gif 配置信息


<configSections>      
<sectionGroup name="DCWeb">
<section name="HttpCompress" type="DC.Web.HttpCompress.Configuration, DC.Web.HttpCompress" />
</sectionGroup>
</configSections>
<DCWeb>
<HttpCompress compressionType="GZip">
<IncludedMimeTypes>
<add mime="text/html" />              
</IncludedMimeTypes>        
</HttpCompress>
</DCWeb>
<system.web>
<httpHandlers>            
<add verb="*" path="js.axd,css.axd" type="DC.Web.HttpCompress.CompressionHandler,DC.Web.HttpCompress"/>
<add verb="*" path="*.gif" type="DC.Web.HttpCompress.ImageHandler,DC.Web.HttpCompress"/>
</httpHandlers>
<httpModules>
<add name="HttpCompressModule" type="DC.Web.HttpCompress.HttpModule,DC.Web.HttpCompress"/>
</httpModules>
</system.web>
  
  IIS 7.0
  部署IIS 7.0 开启GZIP压缩:如图三
DSC0004.png
  图三
DSC0005.png
  图四
  
  CompressionModule压缩模块
  1、首先,将DC.Web.HttpCompress.dll放到项目的bin目录。
  2、配置web.config代码如下:


webconfig的配置


1  <configSections>      
2         <sectionGroup name="DCWeb">
3             <section name="HttpCompress" type="DC.Web.HttpCompress.Configuration, DC.Web.HttpCompress" />
4         </sectionGroup>
5     </configSections>
6
7     <DCWeb>
8         <HttpCompress compressionType="GZip">
9             <!--设定是否启用cachefiles功能,并指定cache目录,默认为false-->
10             <CacheSettings cacheFiles="true" path="cache" />
11             <!--设定jspath及csspath,实际应用中可以不设置-->
12             <PathSettings jsPath="kendo/js" cssPath="css" />
13             <!--设定要压缩何种类型的资源,这里设定了压缩html和javascript,即除了aspx页面(包括所有axd资源)和js外,其它资源不会被压缩,例:如果要压缩gif,请添加<add mime="image/gif"/>-->
14             <!--javascript有很多种表现类型,具体可以借助工具查看其类型-->
15             <IncludedMimeTypes>
16                 <add mime="text/html" />
17                 <add mime="application/x-javascript" />
18             </IncludedMimeTypes>
19             <!--设定不压缩何种类型资源请使用:-->
20             <!--<ExcludedMimeTypes>
21                 <add mime="text/html" />
22                 <add mime="application/x-javascript" />
23             </ExcludedMimeTypes>-->
24             <!--设定不启用压缩的页面路径,下面设定了Test目录下的default.aspx页面将不会启用压缩功能,但其它页面则正常启用压缩-->
25             <!--<ExcludedPaths>               
26                 <add path="~/Test/Default.aspx" />
27             </ExcludedPaths>-->
28         </HttpCompress>
29     </DCWeb>
30
31     <system.webServer>
32         <handlers>         
33             <add name="DC.Web.HttpCompress" verb="*" path="js.axd,css.axd" type="CompressionHandler"/>
34         </handlers>      
35         <modules>
36             <!--设定启用压缩模块的参数-->
37             <add name="HttpCompressModule" type="DC.Web.HttpCompress.HttpModule,DC.Web.HttpCompress"/>
38         </modules>
39     </system.webServer>
  注意:
  1、ExcludedMimeTypes及IncludedMimeTypes只需要配置一个就可以,如果像上面那样配置的话,则表明html和javascript类型被压缩。
  2、<CacheSettings cacheFiles="true" path="cache"/>
  那么项目下就必须存在cache这个目录,否则的话会出错,如果项目不想增加这个目录,只需要将这个配置节删掉即可!

  
  测试结果:
  在IIS 7.0 中使用CompressionMoudule压缩,压缩率为53.3%
  在IIS 6.0 中开启GZIP压缩的压缩率为: 67.3%(可根据在MetaBase.xml文件中的参数进行改变)
  总结:
  在IIS 7.0中使用CompressionModule压缩模块时引用的DC.Web.HttpCompress.dll可以压缩js、css文件。但在IIS 6.0中使用DC.Web.HttpCompress.dll文件时,对js、css文件就不起作用了。因此有个CompressionModule修复版。
  参考博客:
  CompressionModule修复版:http://blog.iyunv.com/gulijiang2008/article/details/7089076(可以下载修复版的dll文件)
  CompressionModule压缩模块:http://www.iyunv.com/0000/archive/2009/05/22/1487376.html
  部署IIS 6.0开启GZIP压缩:http://www.chinaz.com/server/2010/1026/139740.shtml
  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-97846-1-1.html 上篇帖子: IIS 500错误,一步帮你搞定. 下篇帖子: 网站SEO优化、IIS日志分析工具 IISLogViewer V2.0 发布
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表