【问题标题】:gzip compression in Windows Azure WebsitesWindows Azure 网站中的 gzip 压缩
【发布时间】:2024-01-13 17:22:01
【问题描述】:

是否可以在简单的 Azure 网站上启用 gzip 压缩? 如果是这样,怎么办? 在 Azure 网站上应用 gzip 时有什么需要考虑的吗?

【问题讨论】:

标签: asp.net asp.net-mvc optimization azure gzip


【解决方案1】:

我刚刚检查了我的一个 azure 网站,它看起来确实 gzip 正在工作。我的 web.config 中没有任何特别之处,所以我认为它必须默认启用。

【讨论】:

  • 您如何检查 gzip 是否正常工作?我在 IIS 中启用了 gzip 压缩。但是,当我访问 azure 图像时,尽管我的请求标头是“Accept-Encode:gzip,deflate”,但我没有在响应标头中获取“Content-Encode:gzip”。你能建议如何压缩图像吗?
  • 查看响应标头和内容大小。 dl.dropboxusercontent.com/u/613427/gzip.png
  • 是的,我知道您在响应标头中获得了 Content-Encoding:gzip,但尽管我在 IIS 中启用了压缩,但我没有获得图像。想知道我还需要做什么?
  • mmssaann,也许是因为图像(无论如何是 JPG)大部分已经被压缩了,如果有的话,开销不值得。
  • 您是否注意到MSDN 上关于如何通过 .config 启用 http 压缩的帖子?
【解决方案2】:

根据@DavideB 对已接受答案的评论,我发现您可以通过 web.config 为 Azure / IIS 进行配置。 [MSDN source]

<configuration>
  <system.webServer>

    <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
      <scheme name="gzip" dll="%windir%\system32\inetsrv\gzip.dll" 
              doDynamicCompression="true" doStaticCompression="true"
              staticCompressionLevel="7" dynamicCompressionLevel="7" />

      <staticTypes>
        <add mimeType="*/*" enabled="true" />
      </staticTypes>
      <dynamicTypes>
        <add mimeType="*/*" enabled="true" />
      </dynamicTypes>

    </httpCompression>

  </system.webServer>
</configuration>

请注意:

  1. 这仅适用于 Azure 或安装了正确功能的 IIS(即,如果您使用的是 IISExpress 或 vanilla IIS,那么您就不走运了,请参阅文章以了解正确的功能和配置本地测试说明)。

  2. Static和Dynamic资源的压缩是独立配置的,有各自的默认值;实际上,您应该比我更仔细地配置您的 mimetypes 和压缩级别。

  3. 压缩级别介于 0 和 10 之间,其中 0 == 关闭,10 == 最大值;在这里,我将我的设置为 7,原因是这可能是 CPU 使用率和压缩率之间的良好折衷。

【讨论】:

    最近更新 更多