You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IIS10站点级web.config中启用deflate动态压缩

解决方案:IIS 10站点级启用Deflate动态压缩

1. 修正ApplicationHost.config的Scheme权限

默认情况下,IIS <httpCompression>节点下的<schemes>子节点overrideModeDefault为Deny,即便父节点overrideModeDefault设为Allow,也无法在站点级修改Scheme配置。需先调整ApplicationHost.config:

找到对应节点,将<schemes>的overrideModeDefault设为Allow:

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" overrideModeDefault="Allow">
  <schemes overrideModeDefault="Allow">
    <add name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
  </schemes>
  <!-- 其他压缩配置项 -->
</httpCompression>

2. 站点级Web.config配置Deflate

在站点的web.config中,添加Deflate Scheme并关联动态压缩规则:

<system.webServer>
  <httpCompression>
    <schemes>
      <remove name="deflate" />
      <add name="deflate" dll="%Windir%\system32\inetsrv\gzip.dll" />
    </schemes>
    <dynamicTypes>
      <add mimeType="application/json" enabled="true" />
      <!-- 可添加其他需要压缩的动态MIME类型 -->
    </dynamicTypes>
  </httpCompression>
  <urlCompression doDynamicCompression="true" />
</system.webServer>

3. 验证配置生效

  • 重启目标IIS站点(或整个IIS服务)
  • 用curl等工具发送带Accept-Encoding: deflate的请求,检查响应头是否包含Content-Encoding: deflate
  • 重新启用失败请求追踪,确认NO_MATCHING_SCHEME错误消失

关键说明

  • IIS的gzip.dll同时处理gzip和deflate两种压缩格式,因此配置deflate时无需更换dll
  • 必须确保<schemes>节点的overrideMode设为Allow,否则站点级无法添加新Scheme
  • 若站点继承了服务器级Scheme配置,先通过<remove>清理原有规则再添加新规则,避免冲突

内容的提问来源于stack exchange,提问作者Kaumudi Rawat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 04:55:02