为什么gzip压缩在IIS 8.5上不起作用?

mrc*_*son 5 asp.net iis gzip http-compression iis-8.5

我无法在Server 2012 R2计算机上的IIS 8.5上使用gzip压缩。我进行了一些研究,并按照这些职位中的说明进行操作:

  1. 如何在IIS 7.5中启用GZIP压缩
  2. IIS 8.5中的压缩未成功,说明ALREADY_CONTENT_ENCODING
  3. IIS 7.5上的GZip压缩不起作用
  4. gzip压缩不适用于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" />
Run Code Online (Sandbox Code Playgroud)

另外,在IIS中,我将压缩设置为适用于大于256字节的任何内容。我已经执行了iisreset。

尽管如此,我在Chrome或IE的开发人员控制台中看不到压缩功能,而PageSpeed仍然告诉我要压缩内容。我错过了哪一个简单的步骤?

Roh*_*ith 4

很难理解发生了什么。假设您已正确完成所有 IIS 设置。

  • 为了检查压缩是否正常工作,您如何访问该网站。例如,如果您使用 FQDN www.example.com,请尝试使用 localhost url。这将确保您的 IIS 设置正确。
  • 如果本地主机工作正常,而您的完全限定域名不起作用,则问题可能出在网络中。为了使压缩正常工作,浏览器需要发送请求标头accept-encoding:gzip, deflate。很多时候,您的代理或负载平衡器可以修剪此标头,并且此标头可能无法到达 IIS 服务器。因此,即使所有设置都正确完成,IIS 也永远不会压缩。

要验证请求发生了什么以及 IIS 不压缩请求的原因,您可以执行以下操作。

  • 确保您安装了失败请求跟踪
  • 配置您的失败请求定义
    • 转到失败请求跟踪模块
    • 单击侧边栏上的“添加” 请求跟踪失败
    • 启用所有内容和状态为200-999
    • 并完成配置。
    • 现在重现该问题,您将在目录 C:\inetpub\logs\FailedReqLogFiles\W3SVC 中获得捕获的跟踪。
    • 打开跟踪文件(对于每个请求都会生成一个文件。在 IE 中打开跟踪文件(确保请求详细信息与您要验证的请求匹配)并转到紧凑视图 失败请求跟踪紧凑视图
    • 搜索压缩并检查原因 动态压缩失败原因


归档时间:

查看次数:

5323 次

最近记录:

7 年,11 月 前