我无法在Server 2012 R2计算机上的IIS 8.5上使用gzip压缩。我做了一些研究,并遵循这些帖子中的说明:
- How to enable GZIP compression in IIS 7.5
- Compression in IIS 8.5 not successful, stating ALREADY_CONTENT_ENCODING
- GZip Compression On IIS 7.5 is not working
- gzip compression not working with IIS 8.5
下面是我的配置的相关部分:
<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仍然告诉我压缩东西。我错过了哪一步?
4条答案
按热度按时间ct3nt3jp1#
这将是很难理解发生了什么。假设你已经做了所有的IIS设置正确。
accept-encoding:gzip, deflate
。很多时候,你的代理或负载均衡器可以修剪这个头,这个头可能无法到达IIS服务器。所以如果所有的设置都正确,IIS将永远不会压缩。若要验证请求发生了什么以及IIS为什么不压缩请求,可以执行以下操作。
请确保安装了Failed Request tracing。
配置失败请求定义
转到失败请求跟踪模块
单击边栏x1c 0d1x上的添加
启用所有内容,状态为200-999
并完成配置。
现在重现问题,您将在目录C:\inetpub\logs\FailedReqLogFiles\W3SVC中获得捕获的跟踪。
打开跟踪文件(对于每个请求,将生成一个文件。在IE中打开跟踪文件(确保请求详细信息与您要验证的请求匹配),然后转到紧凑视图
搜索压缩并检查原因
5f0d552i2#
正如OP链接到的一个问题的答案中所提到的,请确保检查服务器上是否运行任何防病毒软件。在我的情况下,它是ESET。在禁用相关ESET设置之前,所有IIS压缩设置都不会生效。
我省略了设置的细节--我做了一个看起来很漂亮的全面禁用,并把它留给了IT部门,以找出哪个确切的设置最适合压缩,同时保持安全性。
rggaifut3#
我有一个类似的问题,是由ESET与一些奇怪的行为造成的。它在一些机器上工作,但在有eset的那台上不工作,我花了一些时间才意识到。
发生的事情是ESET导致chrome将http 2请求降级为http1.1并且不压缩它们。如果打开网络并启用“协议”列,则可以看到。删除eset后,它的工作,即使我强迫 chrome 使用http1.1与'--disable-http 2'标志
无论如何,如果它仍然不起作用,我会尝试(除了其他答案):
ccgok5k54#
我也遇到了同样的问题,发现必须重新启动WWW服务才能更改适用的压缩级别https://learn.microsoft.com/en-us/iis/configuration/system.webServer/httpCompression/scheme