问题描述
我已关注 this document 并为我的网站启用了动态和静态压缩。
但是当我测试网站 here 时,没有启用压缩。
我已验证 HttpCompression
:
<system.webServer>
<httpCompression directory="%systemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="application/atom+xml" enabled="true" />
<add mimeType="application/xaml+xml" enabled="true" />
<add mimeType="image/svg+xml" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
</httpCompression>
</system.webServer>
解决方法
我从您发布的标头中看到该站点位于 cloudfront 后面(即 via 和 x-cache 标头)。
因此您可能需要调查让 cloudfront 提供压缩数据:https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html
我对 cloudfront 不是特别熟悉,但由于它添加了 via
标头,因此它充当了代理..
..您的 IIS 设置屏幕截图中有 noCompressionForProxies = True
。
这里有一些关于更改设置的信息 https://community.spiceworks.com/topic/1989103-help-with-enabling-nocompressionforproxies-in-applicationhost-config-in-iis
作为第一个测试,您可以尝试绕过 Cloudfront 访问您的站点以直接测试 IIS 设置。