【发布时间】:2017-03-02 14:21:36
【问题描述】:
我正在尝试使用 iisspeed.com 的“Brotli compression module for Microsoft IIS”在 IIS 中使用新的 Brotli 压缩方案。
如果我将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,但似乎没有办法优先考虑配置中的每个 <scheme> 元素。我已经尝试更改 .config 文件中的顺序,但没有效果。
IIS 始终使用 gzip,即使 br 受支持,并且由于它的文件更小,所以它是首选。
我搜索了谷歌,发现在 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
如果客户端接受,我可以为 IIS7+ 做些什么来告诉 IIS 更喜欢 br 而不是 gzip?
【问题讨论】:
标签: iis http-headers gzip http-compression brotli