如果我在
applicationHost.config
中更改<httpCompression>
配置部分,仅使用Brotli模块,则Brotli压缩模块本身可以正常工作。问题在于我希望同时拥有gzip和Brotli,而且更喜欢Brotli。
iisspeed.com上的文档建议这样做:
<httpCompression directory="path\to\temp\folder" minFileSizeForComp="50">
<scheme name="br" dll="path\to\iisbrotli.dll" />
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
...
</httpCompression>
然而,我发现这并不起作用。
浏览器(此例中为Chrome)发送以下“accept-encoding”头:
accept-encoding: gzip,deflate,sdch,br 这意味着浏览器可以接受Brotli编码br以及gzip。我希望IIS优先使用br而不是gzip,但似乎没有办法在配置中优先考虑每个方案元素。我尝试更改.config文件中的顺序,但没有效果。
即使支持br并且因为它是较小的文件大小而更受欢迎,IIS仍然始终使用gzip。
我已经搜遍了谷歌,发现在IIS 6中有一个针对每个压缩方案的优先级设置,但似乎已在IIS7+中被删除。
它被称为HcPriority并进入了IIS6元数据XML文件。
请参见以下链接:
https://msdn.microsoft.com/en-us/library/ms525366(v=vs.90).aspx
https://blogs.iis.net/ksingla/changes-to-compression-in-iis7
https://forums.iis.net/t/1150520.aspx
allowedServerVariables
配置必须放在applicationHost.config中。如果需要,可以在web.config中针对站点或文件夹定义rules
。 - saucecontrol