第三方测试工具说网站运行“PHP / 5.3.10,ASP.NET”,如果内存服务,它是ASP.NET 4.5
我认为这是由于奇怪的技术组合(例如在IIS上运行PHP)但触摸任何东西都让我感到紧张.
我添加了(仅)来自H5BP IIS server config的expires头和gzip的指令
我想我在2013年1月15日下午添加了这些指令.来自Pingdom性能测试工具的网站测试历史记录是available here.
您可以看到传输大小急剧下降的位置(单击历史记录选项卡).
从那以后,似乎每次我测试它时,不同的文件(通常是像CSS和JS这样的资产)是否使用gzip,没有押韵或理由.有时一切似乎都是用gzip提供的,有时几乎没有任何东西似乎被压缩,但它通常在中间的某个地方(正如你在历史中看到的那样).
到底是怎么回事?
我该如何解决?
此网站尚未进行积极开发,而在15日之后,页面中添加了一些额外数据(我添加的Google Analytics插件脚本以改进跟踪),没有任何内容可以解释如此大的变化和不一致.
我最好的猜测是它与压缩的cpu资源有关,这个问题似乎很接近:Why is gzip compression varying in efficiency in IIS?
weblog.west-wind.com
基本上,OOTB,IIS只会在10秒内至少两次请求文件时进行gzip.
这是通过web.config进行调整的 – 遗憾的是,默认情况下已锁定,因此您必须编辑applicationhost.config以将overrideModeDefault =“DENY”更改为ALLOW.
对此的参考是:forums.iis.net
相关的配置片段如下.你会看到我也在搞乱SVG字体的内容类型,因为默认情况下IIS不会gzip它们,所以通过强制它们text / xml它们也会被压缩.
(Google PageSpeed抱怨这个)
web.config中
<system.webServer> <serverRuntime frequentHitThreshold="1" enabled="true" /> <staticContent> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" /> <remove fileExtension=".svg" /> <mimeMap fileExtension=".svg" mimeType="text/xml" /> </staticContent> <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"> <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" /> <dynamicTypes> <add mimeType="*/*" enabled="true" /> </dynamicTypes> <staticTypes> <add mimeType="image/svg+xml" enabled="true" /> <add mimeType="text/xml" enabled="true" /> <add mimeType="*/*" enabled="true" /> </staticTypes> </httpCompression> <urlCompression doStaticCompression="true" doDynamicCompression="true"/> </system.webServer>
的applicationHost.config
<section name="serverRuntime" overrideModeDefault="Allow" />