我的 IIS 7 动态内容压缩将无法通过服务器日志验证...发送/接收的字节与打开和关闭压缩相同。
让我回顾一下我到目前为止所做的事情,以确保这样做是正确的:
1) 安装动态压缩模块 (duh)
2) 启用动态压缩
3) 在 system.webserver/httpCompression 下的 web.config 中,我添加了 DynamicCompressionDisableCpuUsage=100 和 DynamicCompressionEnableCpuUsage=99 以确保尽可能频繁地启用压缩。服务器负载通常是 0% 到 2% CPU,所以这应该不是问题。
4) 我将 system.webserver/httpCompression/scheme dynamicCompressionLevel 从 0 更改为 7,因为默认值为 0
5) 我添加了 mime 类型并在 system.webserver/httpCompression/dynamicTypes 下设置 enabled=true 并通过请求分析器确保那个 mimetype 确实是正确的
6)在此之后,我什至重新启动了站点/回收的应用程序池。
7) 我什至添加了 mime 类型以包含字符集,我读过的地方有时会影响动态压缩。
我仍然没有减少流量!是什么赋予了!?我什至将 system.webserver/httpCompression/minFileSizeForComp 设置为 1000B,尽管这仅用于静态压缩,我认为它可能会以某种方式延续到动态压缩。日志中发送的字节仍然与未压缩时相同。
这是我的 web.config 部分仅供参考:
<system.webServer>
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" dynamicCompressionDisableCpuUsage="100" dynamicCompressionEnableCpuUsage="99" minFileSizeForComp="1000">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" dynamicCompressionLevel="7" staticCompressionLevel="7"/>
<dynamicTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="application/x-javascript" enabled="true"/>
<add mimeType="application/xml" enabled="true"/>
<add mimeType="application/json" enabled="true"/>
<add mimeType="application/json; charset=utf-8" enabled="true"/>
<add mimeType="application/json; charset=UTF-8" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</dynamicTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
</system.webServer>
以下是我在提出这些设置时引用的其他几个问题......似乎我已经尝试了书中的每一个技巧。
如何在 IIS7 中进行 gzip 压缩?
https://serverfault.com/questions/200041/how-do-determine-the-dynamiccompressiondisablecpuusage-setting-on-iis7