如何禁用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
相关产品推荐
相关产品推荐

