启用 apache mod_deflate 压缩需三步:先用 apachectl -m 验证 deflate_module 和 headers_module 已加载;再在 中设 deflatecompressionlevel 6;最后用 addoutputfilterbytype deflate 指定 text/html、application/json 等文本类型,并用 setenvifnocase 排除 jpg、pdf 等二进制文件。

启用 Apache mod_deflate 压缩级别控制,核心是三步:确认模块已加载、设置全局压缩等级、限定压缩范围。不是写上配置就生效,必须逐项验证。
确认 mod_deflate 和 mod_headers 已真正启用
很多问题出在模块根本没加载。不能只看配置文件里有没有 LoadModule 行,要实锤验证:
- Linux/macOS 执行:
apachectl -M | grep deflate,输出含deflate_module (shared)才算成功 - 同样检查 headers 模块:
apachectl -M | grep headers,缺失会导致 Vary 头无法设置 - 若无输出:Ubuntu/Debian 运行
sudo a2enmod deflate headers;CentOS/RHEL 检查/etc/httpd/conf/httpd.conf中这两行是否取消注释:LoadModule deflate_module modules/mod_deflate.soLoadModule headers_module modules/mod_headers.so
设置 DeflateCompressionLevel 并放在正确位置
压缩等级只能设一个全局值(1–9),它作用于所有被匹配的响应。推荐从 6 开始:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 等级 4:适合高并发小文本场景,CPU 增幅小,压缩率约 55%–65%
- 等级 6:默认推荐,HTML/CSS/JS/JSON 均可缩减 60%–80%,CPU 稳定可控
- 等级 8 或 9:仅限低流量、静态资源为主、CPU 冗余充足环境;动态内容不建议
- 配置必须放在
<ifmodule mod_deflate.c></ifmodule>块内,例如:<ifmodule mod_deflate.c><br> DeflateCompressionLevel 6<br></ifmodule>
按 Content-Type 精准启用压缩,避免无效操作
mod_deflate 不会自动压缩任意响应,必须明确告诉它“压什么”。只对文本类资源启用:
- 应压缩:
text/html、text/css、application/javascript、application/json、text/xml - 必须排除:
.jpg、.png、.pdf、.mp4、.zip等二进制格式——它们本身已高压缩,再压徒增 CPU,几乎不减体积 - 用
AddOutputFilterByType DEFLATE指定类型,例如:AddOutputFilterByType DEFLATE text/html application/json text/css - 用
SetEnvIfNoCase Request_URI排除路径:SetEnvIfNoCase Request_URI \.(?:jpe?g|png|gif|pdf|mp4|zip)$ no-gzip
验证是否真正生效
重启后别只信配置,要用真实请求确认:
- 浏览器 F12 → Network → 刷新页面 → 查看某 JS/CSS 请求的 Response Headers,确认含
Content-Encoding: gzip - 终端执行:
curl -I -H "Accept-Encoding: gzip" https://yoursite.com/test.js,响应头中应有Content-Encoding: gzip - 观察服务器负载:
htop查看 httpd 进程 CPU 使用率,若持续超 70%,说明压缩开销过大,需降级或缩小范围










