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

如何为运行在Azure上的Node应用启用gzip响应压缩

解决Azure App Service Node应用gzip压缩失效的可行方案

方案1:Express中间件层手动开启gzip(优先级最高,最可控)

该方案完全规避Azure平台网关或配置的影响,直接在你的3000端口Express代理服务层面处理压缩,不需要依赖Azure平台配置:

  • 首先安装compression依赖包
npm install compression
  • 在Express服务入口代码的最顶部(路由注册之前)引入并启用中间件,可自定义压缩规则避免不必要的压缩开销:
const compression = require('compression');
const express = require('express');
const app = express();

// 全局启用gzip
app.use(compression({
  threshold: '1KB', // 小于1KB的资源不压缩,避免压缩开销大于收益
  filter: (req, res) => {
    // 仅压缩指定类型的响应内容,跳过已压缩的二进制资源
    const contentType = res.getHeader('Content-Type');
    return /application\/json|text\/|application\/javascript|text\/css/i.test(contentType);
  }
}));

// 后续再注册代理路由、静态资源服务等业务逻辑

配置生效后Express会直接返回gzip压缩后的响应,Azure上层网关默认不会修改已经存在的Content-Encoding响应头。

方案2:开启Azure App Service内置压缩规则

如果不想修改业务代码,可直接在Azure门户配置App Service的平台级压缩能力:

  1. 进入Node应用对应的App Service资源页
  2. 左侧菜单选择配置 → 应用程序设置
  3. 新增两个应用配置项:
    • 键:WEBSITE_DYNAMIC_COMPRESSION_ENABLED,值:true
    • 键:WEBSITE_STATIC_COMPRESSION_ENABLED,值:true
  4. 保存配置后重启App Service实例即可生效

注意:如果你的App Service是自定义Linux容器部署,该配置不生效,需要在容器内部自行配置压缩规则,仅Azure官方内置Node运行时支持该配置。

方案3:Windows宿主环境修改web.config配置

如果你的App Service是用Windows系统宿主运行Node应用,默认会通过IIS托管转发请求,可在项目根目录新增web.config文件显式指定压缩规则:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="true" />
    <httpCompression>
      <dynamicTypes>
        <add mimeType="application/json" enabled="true" />
        <add mimeType="application/javascript" enabled="true" />
        <add mimeType="text/*" enabled="true" />
      </dynamicTypes>
      <staticTypes>
        <add mimeType="application/javascript" enabled="true" />
        <add mimeType="text/*" enabled="true" />
        <add mimeType="image/svg+xml" enabled="true" />
      </staticTypes>
    </httpCompression>
    <!-- 其余Node请求转发规则保留原有配置即可 -->
  </system.webServer>
</configuration>

将该文件和业务代码一起部署后重启实例即可生效。

生效验证方法

配置完成后可通过curl命令直接请求API接口验证压缩是否生效:

curl -I -H "Accept-Encoding: gzip, deflate" 你的API接口地址

如果返回的响应头中包含Content-Encoding: gzip,说明压缩配置已经正常生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:18:04