• IIS 7 启用 gzip 静态压缩 压缩js和css文件


    搞了很久,不如nginx好弄,不知道怎么修改压缩比,也不知道怎么压缩的规则是啥(管理器上没有写),不过反正出来了,一个js文件900多K变成了100多K

    1、在web.config文件里面加上:

    <configuration>
    <system.webServer>
    <urlCompression doStaticCompression="true" doDynamicCompression="false" />
    </system.webServer>
    </configuration>

    2、启用静态压缩

    3、修改了一个配置文件(实际上不知道有没有起作用)

    C:WindowsSystem32inetsrvconfig > applicationHost.config

    <httpCompression directory="%SystemDrive%inetpub empIIS Temporary Compressed Files" minFileSizeForComp="1024">
    <scheme name="gzip" dll="%Windir%system32inetsrvgzip.dll" />
    <staticTypes>
    <add mimeType="text/*" enabled="true" />
    <add mimeType="message/*" enabled="true" />
    <add mimeType="application/x-javascript" enabled="true" />
    <add mimeType="application/javascript" enabled="true" />  <-- 就只加了这一行,然后iisreset
    <add mimeType="application/atom+xml" enabled="true" />
    <add mimeType="application/xaml+xml" enabled="true" />
    <add mimeType="*/*" enabled="false" />
    </staticTypes>
    </httpCompression>

    因IIS后期不再使用,不打算深入研究了,能压缩就OK。

    PS:好像不稳定,稍隔久一点访问,没有压缩(第一次),强制刷新页面,又都压缩了

    解决:

    1、web.config修改下:

    <configuration>
    <system.webServer>

    <urlCompression doStaticCompression="true" doDynamicCompression="false" />
    <serverRuntime enabled="true" frequentHitThreshold="1" frequentHitTimePeriod="00:10:00"/>  <-- 加了这一行

    </system.webServer>
    </configuration>

    修改了之后,IIS会报500错误,于是 命令行 执行(解锁serverRuntime节点):

    %windir%system32inetsrvappcmd unlock config -section:system.webServer/serverRuntime

    然后就OK了,重启下站点,再访问就都是压缩过的了(原先,每次重启站点,第一次访问,都没压缩,隔久了再访问也是没压缩。)

    这篇文章的这部分内容帮助了我:我的就是MetaBase.xml没有IIsCompressionScheme节点的情况! 引自:http://www.cnblogs.com/caicainiao/archive/2011/11/09/2243270.html


    偶尔失效(一会有效一会无效)的解决方法

    3. 使用文本编辑器打开C:WindowsSystem32inetsrvMetaBase.xml(建议先备份),

    找到Location =“/LM/W3SVC/Filters/Compression/gzip用于设置gzip压缩,

    找到Location =”/LM/W3SVC/Filters/Compression/deflate“用于设置deflate压缩。 上面两个节点紧挨着。并且设置的属性相同。

    如果需要压缩动态文件,则将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    Location="/LM/W3SVC/Filters/Compression/gzip"
        HcCompressionDll = "%windir%system32inetsrvgzip.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%system32inetsrvappcmd.exe,然后再命令行界面中输入以下命令字符串,然后回车

    set config -section:system.webServer/serverRuntime -frequentHitThreshold:1

    如果 appcmd.exe 窗口执行无法停留,可以执行连续指令:

    %windir%system32inetsrvappcmd.exe set config -section:system.webServer/serverRuntime -frequentHitThreshold:1
    %windir%system32inetsrvappcmd.exe set config -section:system.webServer/serverRuntime -frequentHitTimePeriod: 00:10:00
  • 相关阅读:
    毕业面试试题汇总
    js获取系统日期
    非常酷的3D翻转相册展示特效
    CSS 替换元素和非替换元素 行内非替换元素
    怎样在linux下编写C程序并编译执行
    库和框架的区别
    转载:em(倍)与px的区别
    RPMForge介绍及安装
    linux下安装jdk和配置环境变量
    PCI PCI-X PCI-E介绍
  • 原文地址:https://www.cnblogs.com/Denny_Yang/p/7211182.html
Copyright © 2020-2023  润新知