如何使用IIS压缩所有文件
已启用IIS压缩: 以下是web.config的httpCompression标记:如何使用IIS压缩所有文件,iis,web-config,http-compression,Iis,Web Config,Http Compression,已启用IIS压缩: 以下是web.config的httpCompression标记: <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" minFileSizeForComp="1" staticCompressionIgnoreHitFrequency="true"
<httpCompression
directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"
minFileSizeForComp="1"
staticCompressionIgnoreHitFrequency="true"
dynamicCompressionIgnoreHitFrequency="true">
<dynamicTypes>
<add mimeType="*/*" enabled="true" />
</dynamicTypes>
<staticTypes>
<add mimeType="*/*" enabled="true" />
</staticTypes>
</httpCompression>
遗憾的是,其他文件未压缩:
我没有在“C:\inetpub\temp”中看到“IIS临时压缩文件”
有人能提供一个如何诊断这个问题的提示吗
更新[2020-08-13]
Windows Server 2016上的配置编辑器:
更新[2020-08-13]
根据@Kul Tigin,需要安装动态内容压缩:
没有名为DynamicCompressionIgnorHitFrequency的设置,请将其删除
minFileSizeForComp
的1
(字节)有点苛刻。压缩小文件只会减小响应大小。
将其保留为默认值2700
与属性上的设置值不同(就像您在staticCompressionIgnoreHitFrequency=“true”
中所做的那样),将设置添加为节点不会覆盖继承的设置
在添加之前,删除可能继承的相应设置或清除所有继承的设置是防止错误(尤其是静默设置)的良好做法。
否则可能会发生错误,或者更糟的是,无声错误可能会破坏您的设置
每个应用程序池的100
(MB)空间限制可能不足以满足您的需要。如果我没记错的话,您的大多数文件都是megabaytes的webassembly文件
因为您希望尽可能压缩所有文件;指定一个足够大的值
尽可能大;所有文件的未压缩长度之和。说2048
MB
通过这种方式,您无法达到磁盘空间限制,因此不会因为空间不足而删除任何压缩缓存
只要原始文件没有更改,压缩缓存就会继续存在并被交付
我有3年的压缩缓存文件存储在我的服务器上,准备交付顺便说一句
所以,试试下面的方法
如果不起作用,请提供有关请求头和以未压缩方式交付的文件的更多信息
1)IIS管理器公开的设置太少,因此您必须研究配置文件;2)为了排除故障,我在发布问题之前读了很多书。我想知道IIS 6和IIS 7的所有信息是否仍然相关。如果您阅读了很多,您知道IIS 7和IIS 7以上的信息是相同的。非常感谢。这就像一个魅力瞬间。我后悔在这件事上花了这么多时间,尝试了各种各样的事情却没有结果。我发现下面是钥匙。没有它,任何东西都不会被压缩。我读了很多书,但不记得有人提到过这一点。每个尝试IIS压缩的人都应该知道这一点!假设你不介意的话,我会用黑体字写下你答案的这一部分。@Hong是的,纪录片大多不能解决这样的边缘案例,所以我们从痛苦中学习。我很高兴能为您提供帮助。@Hong您的开发人员机器和服务器的配置可能会有所不同。如果在Windows Server 2016上使用IIS管理器时没有任何错误(如图所示),请确保已解锁部分system.webServer/httpCompression
,并允许覆盖。如果这没有帮助,请尝试使用失败的请求跟踪模块进行故障排除。@Hong在网格的第一行中,集合计数的值应该是2而不是1(count=1)
。您确定已在服务器上安装IIS Brotli模块吗?非常感谢。根据您的提示安装动态内容压缩后,它现在可以工作了(请参阅我更新问题的新屏幕截图)。我没有看到文件夹IIS临时压缩文件。两周前我删除了它,因为我认为IIS会自动创建它。我担心IIS没有使用缓存。