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

如何禁用Azure Function App默认开启的Gzip压缩?

禁用Azure Function App默认Gzip压缩的方法

嘿,我之前也碰到过没法直接访问服务器端文件系统改web.config的情况,不过有几个靠谱的办法能解决这个问题:

方法1:通过Azure门户的应用设置快速禁用

这是最省事的方式,不用碰任何配置文件:

  • 打开Azure门户,找到你的Function App
  • 进入配置 > 应用程序设置页面
  • 添加以下两个应用设置:
    • 键:WEBSITE_HTTP_COMPRESSION_DISABLE,值:true(禁用静态内容的Gzip压缩)
    • 键:WEBSITE_HTTP_COMPRESSION_DYNAMIC_DISABLE,值:true(禁用动态内容的Gzip压缩)
      添加完成后保存设置,Function App会自动重启,重启后Gzip压缩就完全关闭了。

方法2:部署自定义web.config到站点根目录

如果你需要更精细的配置控制,可以把自定义的web.config文件部署到Function App的wwwroot文件夹(也就是站点根目录),部署的时候一起上传就行:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <!-- 完全禁用静态和动态压缩 -->
    <urlCompression doStaticCompression="false" doDynamicCompression="false" />
  </system.webServer>
</configuration>

你可以通过VS Code的Azure Functions扩展、Azure CLI或者GitHub Actions等部署工具,把这个文件传到wwwroot目录下,IIS会优先使用这个自定义配置覆盖默认的压缩规则。

方法3:针对隔离工作者模式(Isolated Worker Model)的配置

如果你的Function App用的是隔离工作者模式,需要在代码里配置:

var builder = WebApplication.CreateBuilder(args);

// 禁用Gzip和Brotli压缩
builder.Services.Configure<GzipCompressionProviderOptions>(options =>
{
    options.Level = CompressionLevel.NoCompression;
});
builder.Services.Configure<BrotliCompressionProviderOptions>(options =>
{
    options.Level = CompressionLevel.NoCompression;
});

// 或者直接移除所有压缩中间件(更彻底)
builder.Services.RemoveAll<ICompressionProvider>();

var app = builder.Build();
// 其他应用配置...
app.Run();

这样就能在应用启动时直接关闭压缩功能。

内容的提问来源于stack exchange,提问作者Ray H

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:55:02