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

[经验分享] 启用对静态内容的 HTTP (GZIP)压缩 (IIS 7)(源自官方以及搜索整理)

[复制链接]

尚未签到

发表于 2015-8-16 11:58:16 | 显示全部楼层 |阅读模式
启用对静态内容的 HTTP 压缩
      
           您可以通过以下方法执行此过程:使用用户界面 (UI)、在命令行窗口中运行 Appcmd.exe 命令、直接编辑配置文件或编写 WMI 脚本。
         用户界面
         
           使用 UI
           
            

  •                    打开 IIS 管理器,然后导航至您要管理的级别。 有关如何打开 IIS 管理器的信息,请参阅 打开 IIS 管理器 (IIS 7)。 有关如何在 UI 的各个位置间进行导航的信息,请参阅 在 IIS 管理器中导航 (IIS 7)。
  •                    在“功能视图”中,双击“压缩”
  •                    在“压缩”页上,选中“启用静态内容压缩”旁边的框。
  •                    在“操作”窗格中,单击“应用”
                             命令行
         
             若要启用对静态内容的 HTTP 压缩,请在命令提示符处键入如下命令,然后按 Enter:
  appcmd set config /section:urlCompression /doStaticCompression:True           
  有关 Appcmd.exe 的详细信息,请参阅 Appcmd.exe (IIS 7) 。
                  配置
         
             本主题中的过程会影响以下配置元素:
  <urlCompression>           
  有关 IIS 7 配置的详细信息,请参阅 MSDN 上的 IIS 7.0:IIS 设置架构(可能为英文页面)。
                  WMI
         
             请使用以下 WMI 类、方法或属性执行此过程:
           

  •                HttpCompressionSection.Schemes.DoStaticCompression 属性
  •                HttpCompressionSchemeElement
             有关 WMI 和 IIS 的详细信息,请参阅 IIS 7 中的 Windows Management Instrumentation (WMI)。 有关与此过程关联的类、方法或属性的更多信息,请参阅 MSDN 网站上的 IIS WMI 提供程序参考(可能为英文页面)。
  
  来源:

http://technet.microsoft.com/zh-cn/library/cc754668%28WS.10%29.aspx  
  
  注:默认情况下只会在你网站根目录有效果,如果想让 js,css 文件夹里使用GZIP,那么则需要在站点里相应的目录下执行以上操作

  
  讲一下如果配置了,可以在

http://tool.chinaz.com/Gzips/测试,当然可以具体到css和js 例如(..com/js/js.js).
  
  
  当然有可能这样配置后无效,解决方法如下:

  

先打开IIS管理,选择我要设置的站点,然后在右边的功能区找到MIME TYPES看看里面是否有.JS的选项,如果没有可以手功加上
  有的话把.js的值设置成:application/x-javascript记住不能少并x-有的网友介绍是application/javascript

  偶在WIN2008+IIS7下试过,如果不加x-也是不会压缩的。
当然最好在上传JS前对JS进行一次压缩这样效果会更好啦。 可以到网上找找TBCompressor工具,这个工具压缩不错
先打开IIS管理,选择我要设置的站点,然后在右边的功能区找到MIME TYPES看看里面是否有.JS的选项,如果没有可以手功加上
  有的话把.js的值设置成:application/x-javascript记住不能少并x-有的网友介绍是application/javascript

  偶在WIN2008+IIS7下试过,如果不加x-也是不会压缩的。
当然最好在上传JS前对JS进行一次压缩这样效果会更好啦。 可以到网上找找TBCompressor工具,这个工具压缩不错  


DSC0000.jpg
IIS7下js文件启用Gzip后却不压缩的解决方法IIS7已经启用静态文件压缩(Gzip)但是死活不压缩,查找后发现是II7下MIME类型设置问题
将.js的MIME类型设置为application/javascript
再查看页面,已经启用了Gzip。
不过,几个天后又发现有的js文件被压缩,有的却没有。
查找原因发现是引用js文件是没有设置type
<script></script>
<script src=&#8221;A.js&#8221;></script>
加上type="text/javascript"类型后问题解决。
  
   偶尔失效(一会有效一会无效)的解决方法
  
  3. 使用文本编辑器打开C:\Windows\System32\inetsrv\MetaBase.xml(建议先备份),
  找到Location =&#8220;/LM/W3SVC/Filters/Compression/gzip用于设置gzip压缩,
  找到Location =&#8221;/LM/W3SVC/Filters/Compression/deflate&#8220;用于设置deflate压缩。 上面两个节点紧挨着。并且设置的属性相同。
  如果需要压缩动态文件,则将HcDoDynamicCompression设置为&#8221;TRUE&#8220;,
  并在HcScriptFileExtensions中增加您要压缩的动态文件后缀名,如aspx;
  如果需要压缩静态文件,则将HcDoStaticCompression和HcDoOnDemandCompression设置为&#8221;TRUE&#8220;,
  并在HcFileExtensions中增加您需要压缩的静态文件后缀名,如xml、css等;
  HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的压缩率,数值在0-10, 默认为0。
  HcDynamicCompressionLevel属性说明:HcDynamicCompressionLevel Metabase Property
  HcOnDemandCompLevel 属性说明:HcOnDemandCompLevel Metabase Property
  说明: 这两个属性值一般推荐设置为9, 具有最佳性价比。
  
  
<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
        html
        txt
        js
        css
        swf
        xml"
    HcOnDemandCompLevel="9"
    HcPriority="1"
    HcScriptFileExtensions="asp
    aspx
    dll
    exe">
</IIsCompressionScheme>
  

  注意
  1. 在编辑MetaBase.xml前需要停止IIS,可以使用 net stop iisadmin
  2. 修改完成后开启iisadmin服务,并执行iisreset命令
  关于SEO的测试
  压缩是否对SEO有影响,经测试,开启后仍然可以被很好的收录。
  关于对SEO影响的研究文章,还可以参考下面的几篇文章。
  具体的效率问题,将继续监控以作研究。
  
  如果以上设置无效,或者MetaBase.xml没有响应节点,用以下方式解决
  

  第一种是在web.config中添加以下内容,将frequentHitThreshold调至1,将frequentHitTimePeriod调制10分钟
  <system.webServer>
  <serverRuntime enabled="true"
  frequentHitThreshold="1"
  frequentHitTimePeriod="00:10:00"/>
  </system.webServer>
  第二种方法是打开%windir%\system32\inetsrv\appcmd.exe,然后再命令行界面中输入以下命令字符串,然后回车
  set config -section:system.webServer/serverRuntime -frequentHitThreshold:1
  
  如果 appcmd.exe 窗口执行无法停留,可以执行连续指令:

  
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/serverRuntime -frequentHitThreshold:1
  


  
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/serverRuntime -frequentHitTimePeriod: 00:10:00

运维网声明 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-99733-1-1.html 上篇帖子: 如何配置 IIS 中的身份验证 下篇帖子: 在IIS中不能启动网站, 提示: “另一个程序正在使用此文件,进程无法访问”
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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