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