如果我将 IIS 配置为对静态文件使用数据压缩,第一个客户端通常会收到未压缩的内容,而后面的客户端会收到压缩的内容。推测 IIS 在后台压缩文件并将其缓存以供以后请求。
但是,我希望第一个客户端也接收压缩内容。那就是:我更愿意用延迟换取带宽。有什么方法可以配置 IIS 来做到这一点?
如果我将 IIS 配置为对静态文件使用数据压缩,第一个客户端通常会收到未压缩的内容,而后面的客户端会收到压缩的内容。推测 IIS 在后台压缩文件并将其缓存以供以后请求。
但是,我希望第一个客户端也接收压缩内容。那就是:我更愿意用延迟换取带宽。有什么方法可以配置 IIS 来做到这一点?
嗯,它实际上工作方式有点不同。IIS 不会在后台压缩文件,但它有一个阈值来决定是否应该压缩内容。这可以防止它使用 CPU 资源和缓存存储来处理不常请求的内容。默认情况下,IIS 仅在 10 秒内收到两个对该内容的请求时才会压缩内容。
您可以通过更改web.config 中元素中的frequentHitThreshold
和frequentHitTimePeriod
属性来更改这些默认值(请参阅iis.net 上的配置参考)。我尚未对其进行测试,但我希望仅设置为即可为您提供所需的结果。<serverRuntime />
frequentHitThreshold
1
<configuration>
<system.webServer>
<serverRuntime frequentHitThreshold="1" />
</system.webServer>
</configuration>
希望这可以帮助。