the*_*man 7 iis gzip http-compression http-headers brotli
我试图通过iisspeed.com使用" 用于Microsoft IIS的Brotli压缩模块 "在IIS中使用新的Brotli压缩方案.
如果我将<httpCompression>配置部分更改applicationHost.config为仅具有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>
Run Code Online (Sandbox Code Playgroud)
但是我发现这不起作用.
浏览器(本例中为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
br了gzip,如果客户接受呢?看来您引用的Brotli模块需要付费许可证,所以我没有尝试过,但我遇到了与我自己的IIS开源Brotli插件类似的问题.
正如您所指出的,当前浏览器在标题之后gzip和标题中宣传Brotli支持.deflateAccept-Encoding
在HTTP RFC给出了如何从众多选择没有具体的指导,Accept-Encoding具有相同优先级的值,所以它是可以接受的返回br内容的客户端.但是,似乎IIS总是选择与其配置的压缩方案之一匹配的第一个(从左到右).
如果您希望启用两个方案,则可以Accept-Encoding在请求进入IIS管道时修改请求的标头值.在IIS URL重写模块可以用一个简单的规则做到这一点.
该Accept-Encoding头是由表示HTTP_ACCEPT_ENCODING在IIS管道服务器变量,并且其到达压缩模块(一个或多个)之前可以修改它.这是一个示例配置:
<rewrite>
<allowedServerVariables>
<add name="HTTP_ACCEPT_ENCODING" />
</allowedServerVariables>
<rules>
<rule name="Prioritize Brotli">
<match url=".*" />
<conditions>
<add input="{HTTP_ACCEPT_ENCODING}" pattern="\bbr(?!;q=0)\b" />
</conditions>
<serverVariables>
<set name="HTTP_ACCEPT_ENCODING" value="br" />
</serverVariables>
</rule>
</rules>
</rewrite>
Run Code Online (Sandbox Code Playgroud)
上面的规则在标题中查找字符串br(由单词边界包围 - 而不是紧接着;q=0),Accept-Encoding并将其重新编写为纯文本br,只给IIS一个选择.
请注意,默认URL Rewrite配置不允许修改HTTP_ACCEPT_ENCODING变量.该allowedServerVariables元素会覆盖该限制,必须在其中进行配置applicationHost.config.然后可以在配置层次结构中的任何级别定义重写规则,尽管将其设置为全局可能是有意义的.
| 归档时间: |
|
| 查看次数: |
2441 次 |
| 最近记录: |