我无法在Server 2012 R2计算机上的IIS 8.5上运行gzip压缩。我做了一些研究,并按照这些帖子中的说明进行了研究:
以下是我配置的相关部分:
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" staticCompressionIgnoreHitFrequency="true">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<!-- I have read that dynamic compression increases server CPU load.
<dynamicTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</dynamicTypes>
-->
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true" />
此外,在IIS中,我将压缩设置为适用于大于256字节的任何内容。我已经完成了iisreset。
尽管如此,我还没有看到我在Chrome或IE中的开发控制台中提到的压缩,而PageSpeed仍然告诉我压缩内容。我错过了一个简单的步骤?
答案 0 :(得分:3)
很难理解发生了什么。假设您已完成所有IIS设置。
accept-encoding:gzip, deflate
。很多时候你的代理或负载均衡器可以修剪这个标题,这个标题可能无法到达IIS服务器。所以如果所有设置都正确完成,IIS将永远无法完成。要验证请求的内容以及IIS未压缩请求的原因,您可以执行以下操作。
答案 1 :(得分:1)
如对OP链接到的问题之一的回答中所述,请确保检查服务器上是否正在运行任何防病毒软件。就我而言,是ESET。在禁用相关的ESET设置之前,没有IIS压缩设置有效。
我遗漏了设置的详细信息-我做了一个似乎很全面的禁用,将其留给了IT人员,以找出哪种最合适的设置最适合压缩,同时仍保持安全性。
答案 2 :(得分:0)
我有一个类似的问题,是由ESET引起的,具有某些奇怪的行为。 它可以在某些机器上运行,但不能在具有eset的机器上运行,这花了我一些时间才能实现。
发生的事情是ESET导致Chrome将http2请求降级为http 1.1,而不压缩它们。可以看到是否打开网络并启用“协议”列。删除eset之后,即使我强制chrome使用带有'--disable-http2'标志的http1.1,
无论如何,如果仍然无法解决,我会尝试(除了其他答案):