Web 服务器未启用 Gzip?建议立即开启。Gzip 压缩可将首屏加载时间缩短高达 90%,进而提升搜索引擎排名、增加网站流量并促进销售转化。
Gzip 压缩已是行业标配,您的服务器可能已默认启用。可通过 Google PageSpeed Insights 或 Varvy Gzip Compression Test 等工具快速验证。
花几秒测试确认站点是否已启用 Gzip 压缩是值得的。
若已启用 Gzip,可转向其他提速策略(如 HTTP/2)以获取更多客户;若未启用,请尽快配置并测试。
Gzip 工作原理
Gzip 是一种专为 HTML、CSS、JavaScript 和 JSON 等文本文件设计的压缩技术,已有 20 余年历史。作为互联网最主流的压缩格式之一,它能实现极速编解码并显著减小文件体积。
Gzip 通过 LZ77 算法识别冗余模式,再利用“霍夫曼树”减少表达这些模式所需的字符数,从而实现高效压缩。
配置 Web 服务器后,可在向用户浏览器发送文件前自动进行 Gzip 压缩,有效降低传输负载。
需压缩的文件类型
下文将介绍两大主流 Web 服务器的 Gzip 配置方法。建议对以下 MIME 类型启用压缩:
- HTML – text/html
- CSS – text/css
- JSON – application/json
- JavaScript – application/javascript / text/javascript
- XML – application/xml / text/xml
- SVG – image/svg+xml
根据站点实际情况,还可对字体、RSS 订阅源等进行压缩。完整 MIME 类型列表可查阅 IANA(互联网号码分配机构)官网。
Apache Web 服务器配置
Apache 是最流行的 Web 服务器,据 Netcraft 调查,截至 2018 年 2 月约 44% 的活跃网站使用 Apache。
Apache 使用 mod_deflate 模块启用输出压缩。该模块属于 Apache 2 核心包,通常已预装(Ubuntu 路径示例:/usr/lib/apache2/modules/mod_deflate.so)。
启用步骤:
- 打开模块配置文件(通常位于
/etc/apache2/mods-available/deflate.load)。 - 找到
LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so,若行首有 # 号则删除以取消注释。 - 重启 Apache:
sudo apachectl restart或sudo service apache2 restart。
配置压缩规则:
编辑默认配置文件(通常位于 /etc/apache2/mods-available/deflate.conf),添加如下指令:
<IfModule mod_deflate.c>
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/x-javascript application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/xml
</IfModule>
</IfModule>
每个 AddOutputFilterByType 参数对应一个需压缩的 MIME 类型。
Nginx Web 服务器配置
据 Netcraft 调查,约 21% 的活跃网站使用 Nginx。以下步骤基于 Nginx 官方指南整理。
配置步骤:
- 打开 Nginx 配置文件(Ubuntu 示例:
/etc/nginx/nginx.conf),命令:sudo nano /etc/nginx/nginx.conf。 - 找到 gzip 配置段(# 开头为注释行):
## # Gzip Settings ## gzip on; gzip_disable "msie6"; # gzip_vary on; # gzip_proxied any; # gzip_comp_level 6; # gzip_buffers 16 8k; # gzip_http_version 1.1; # gzip_types text/plain text/css application/json ...
gzip on默认仅压缩 text/html。取消其他参数注释,并新增gzip_min_length 256;。
gzip_min_length 设定最小压缩阈值(建议 256 字节)。过小的文件压缩耗时可能超过直接传输时间,反而影响速度。
优化后的配置示例:
## # Gzip Settings ## gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_min_length 256; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain text/css application/json ...
- 重载 Nginx:
sudo systemctl reload nginx或sudo service nginx reload。
各 gzip 参数详解请参阅 Nginx 官方文档。

