IIS 开启 静态内容压缩 + 动态内容压缩:打开 Windows Server 服务器管理器 → 添加角色和功能 → Web 服务器 (IIS) → 性能功能,然后勾选:
- ✅静态内容压缩
- ✅动态内容压缩
这新添加成功后,所有IIS下在的网站都自动开启了内容压缩功能,不必一个个设置的。
aspx 动态输出 HTML、json、xml✅doDynamicCompression
磁盘静态 .css .js .html .txt .xml✅doStaticCompression
只险起见可以在web.config 文档中添加配制:
<system.webServer>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
</system.webServer>
如果开启成功可以用在浏览器中按F12查看,会多出个 content-encoding= gzip ,证明已经开启成功了。
有时会显示 Transfer‑Encoding: chunked(分块传输),属于正常现象,不是故障。
在 IIS 开启动态 gzip 压缩后,aspx 页面经常出现 `transfer‑encoding: chunked`。
1. CPU 自动降压缩:IIS 动态压缩,CPU 持续高于 90% 会自动关闭动态压缩,CPU 回落才恢复,高并发压测要留意这个机制Microsoft 。
2. 不要代码里手动 Response.Filter 做 Gzip:IIS 层已经压缩,代码再套一层 Gzip 会造成双重压缩,页面乱码。
3. 动态压缩**不缓存:aspx 每次请求实时压缩,消耗少量 CPU;静态文件 (html/js/css) 会缓存压缩结果。
4. 如果你用 CDN:源站开启 gzip,CDN 不要重复开启 gzip,避免双重压缩乱码。