Nginx 开启 Gzip 压缩需在配置文件的 http 块中添加 gzip on 及相关参数,适用于 HTML、CSS、JS 等文本类资源传输优化。DigitalOcean 站点加载速度优化除开启压缩外,还需结合缓存策略与静态资源处理,注意 CPU 开销与兼容性风险。
先说结论:Nginx 默认通常已包含 gzip 模块,需在 http 块全局启用并指定 MIME 类型,DigitalOcean 等 VPS 环境可直接应用该配置。
- 适合:文本类资源(HTML/CSS/JS/JSON),二进制文件如图片视频通常不建议压缩。
- 先准备:确认 nginx -V 输出中包含 with-http_gzip_module,备份原配置文件。
- 验收:响应头出现 Content-Encoding: gzip 且业务功能正常。
命令速用版
在/etc/nginx/nginx.conf 的 http 块中添加以下配置,注意不要重复添加:
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
gzip_vary on;
gzip_min_length 1000;
gzip_comp_level 6;
gzip_disable "msie6";为什么会这样
Gzip 压缩通过算法减小响应体体积,直接降低网络传输时间。Nginx 在响应生成阶段进行压缩,不影响磁盘静态文件,但会消耗少量 CPU 资源。DigitalOcean 等云服务器的网络带宽通常按量或有限制,减少传输体积能间接提升加载体验,但具体速度提升取决于客户端网络状况,公开资料中没有看到可靠的量化数据。
分步处理
第一步,确认模块存在。执行命令 nginx -V 2>&1 | grep -o with-http_gzip_module,若无输出需重新编译 Nginx。
第二步,编辑配置文件。使用文本编辑器打开/etc/nginx/nginx.conf,在 http { } 块内插入速用版配置,避免在 server 或 location 块重复配置导致冲突。
第三步,检查配置并重载。执行 nginx -t 确认语法无误,随后执行 nginx -s reload 使配置生效,避免直接重启服务导致中断。
怎么验证是否生效
使用 curl 命令检查响应头:curl -I -H "Accept-Encoding: gzip" http://你的域名,查看输出中是否包含 Content-Encoding: gzip。
在浏览器开发者工具 Network 面板刷新页面,选中 JS 或 CSS 文件,查看 Response Headers 字段,确认 content-encoding 为 gzip。
若未看到该字段,检查请求头是否携带 Accept-Encoding: gzip,或确认文件大小是否大于 gzip_min_length 设置值。
常见坑
不要压缩所有文件类型。图片(jpg/png)、视频(mp4)等二进制文件压缩率极低且消耗 CPU,gzip_types 应仅包含文本类 MIME 类型。
压缩级别不宜过高。gzip_comp_level 建议设为 6,级别 9 虽压缩率最高但 CPU 开销明显上升,收益递减。
注意缓存协同。开启 gzip_vary on 确保代理或 CDN 正确缓存压缩与非压缩版本,同时配置 expires 或 Cache-Control 头。
常见问题
图片文件需要开启 Gzip 吗?
不需要。图片本身已压缩,Gzip 处理二进制文件收益低且浪费 CPU,建议仅在 gzip_types 中指定文本类型。
如何确认 DigitalOcean 节点网络影响?
Nginx 配置通用,但加载速度受服务器地理位置影响,建议选择离用户近的机房,配置本身不依赖特定服务商。
开启后 CPU 占用高了怎么办?
降低 gzip_comp_level 值,或增大 gzip_min_length 避免小文件压缩,必要时升级服务器配置。
参考来源
- Nginx 利用 http 块 gzip 指令全局开启网页内容压缩加速
- Nginx 开启 gzip 压缩,让网站飞一会!
- Nginx 启用 Gzip 压缩的完整配置指南
- 建站资源:实战技巧与最佳实践总结