IIS:有条件地设置和服务gzip和brotli压缩

IIS:有条件地设置和服务gzip和brotli压缩,iis,compression,gzip,http-compression,brotli,Iis,Compression,Gzip,Http Compression,Brotli,我想将一些静态内容发送到浏览器,发现Brotli将最终下载包的大小比gzip减少了43% 我首先尝试只设置Brotli,所有现代浏览器下载压缩文件。但在IE11(不支持brotli)上试用时,下载原始内容时不进行任何压缩,这会影响性能 为了处理这个问题,我将Gzip和Brotli都保存在IIS上。但是现在所有浏览器都只下载Gzip格式的内容,这很可能是因为Gzip首先出现的请求头顺序 我想将其设置为有条件的,以便默认情况下浏览器下载Brotli格式的内容,如果浏览器不支持它,则自动切换到gzip

我想将一些静态内容发送到浏览器,发现Brotli将最终下载包的大小比gzip减少了43%

我首先尝试只设置Brotli,所有现代浏览器下载压缩文件。但在IE11(不支持brotli)上试用时,下载原始内容时不进行任何压缩,这会影响性能

为了处理这个问题,我将Gzip和Brotli都保存在IIS上。但是现在所有浏览器都只下载Gzip格式的内容,这很可能是因为Gzip首先出现的请求头顺序

我想将其设置为有条件的,以便默认情况下浏览器下载Brotli格式的内容,如果浏览器不支持它,则自动切换到gzip格式

知道怎么做吗

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
        <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
        <scheme name="br" dll="%Windir%\system32\inetsrv\brotli.dll" dynamicCompressionLevel="5" staticCompressionLevel="11" />
        <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>
        <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>
    </httpCompression>

您可以启用Brotli和Gzip压缩的多个压缩方案,并设置压缩方案优先级

IIS提供默认压缩方案提供程序gzip,默认情况下,它在applicationHost.config中注册为gzip方案。但如果您还想使用Brotli压缩,则需要在applicationHost.config中添加iisbrotli.dll作为Brotli压缩方案提供程序

关于如何设置压缩方案优先级,它分为两个版本:IIS 10.0版本1803或更高版本和IIS 10.0版本1803之前的版本

关于IIS 10.0版本1803或更高版本,每个压缩方案的优先级由其在元素集合中的顺序决定

大约在IIS 10.0版本1803之前,它根据Accept Encoding请求标头值中出现的方案顺序对压缩方案进行优先级排序,但对于浏览器在请求中设置Accept Encoding:gzip、deflate、br标头的典型场景,IIS始终将gzip优先于br。一种可能的解决方法是安装URL重写模块并配置重写规则以修改Accept Encoding标头值。

这似乎是一个类似的问题:谢谢。是否需要将该条目放入applicationHost.config文件中?