在 Nginx 中配置 Gzip 提升网站访问速度
温馨提示:
本文最后更新于 2025年07月16日,已超过 10 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
一、什么是 Gzip 压缩
Gzip 是一种基于 DEFLATE 算法的压缩格式,能够显著减少网页资源(如 HTML、CSS、JavaScript 等)的传输体积,从而降低带宽消耗并提升页面加载速度。
二、为什么要在 Nginx 中开启 Gzip
- 减少传输大小
对文本资源进行压缩后,通常能减少 60%~80% 的传输量。 - 提升用户体验
页面加载更快,用户等待时间更短,降低跳出率。 - 节省服务器带宽
带宽成本降低,尤其对于高流量网站效果显著。
三、Nginx 中 Gzip 常用配置
在 Nginx 主配置文件(通常为 /etc/nginx/nginx.conf
或者站点配置中的 server
/ http
区块)中添加或修改以下指令:
http {
# 开启 gzip
gzip on;
# 设置压缩级别,范围 1~9,数字越大压缩越彻底但消耗 CPU 越多
gzip_comp_level 5;
# 要压缩的最小响应字节数,超过该值才会压缩
gzip_min_length 256;
# 配置 MIME 类型,指定哪些类型的资源启用 Gzip
gzip_types
text/plain
text/css
text/javascript
application/javascript
application/x-javascript
application/json
application/xml
application/xhtml+xml;
# 对所有 HTTP/1.0 和 HTTP/1.1 请求启用
gzip_http_version 1.1;
# 在响应头中添加 “Vary: Accept-Encoding”
# 让缓存服务器区分压缩与未压缩版本
gzip_vary on;
# 对包含特定字符串的 User-Agent 禁用压缩(可选,兼容老浏览器)
gzip_disable "msie6";
}
`
参数详解
- gzip:开启或关闭 Gzip 功能。
- gzip_comp_level:压缩级别,建议取值 4~6。
- gzip_min_length:最小压缩字节数,避免对非常小的文件压缩反而增大体积。
- gzip_types:指定哪些 MIME 类型启用压缩,
text/html
默认会压缩,可不写。 - gzip_vary:添加响应头以便代理服务器区分。
- gzip_http_version:指定只对 HTTP/1.1 及以上版本生效(因为 HTTP/1.0 客户端可能不支持)。
- gzip_disable:根据 User-Agent 禁用特定客户端的 Gzip。
四、验证 Gzip 是否生效
浏览器开发者工具
打开 Network 面板,刷新页面,查看请求响应头中是否包含:Content-Encoding: gzip
命令行测试
curl -I -H "Accept-Encoding: gzip" https://your-domain.com
若返回头部中有
Content-Encoding: gzip
,则表示已启用压缩。
五、实战建议
- 合理选取压缩级别
对于 CPU 资源丰富的服务器可适当提高级别,反之可设置为 4 或 5。 - 结合缓存使用
与Expires
、Cache-Control
搭配,可最大程度减少重复请求。 - 动态与静态分离
对于大静态文件(如图片、视频),无需 Gzip,可由 CDN 或专门存储;Gzip 主要针对文本类资源。
六、总结
通过在 Nginx 中配置 Gzip 压缩,可以在不影响用户体验的前提下,显著降低资源传输大小、节省带宽并提升页面加载速度。本文示例仅供参考,请根据实际业务场景和服务器性能进行调优。
正文到此结束
- 本文标签: nginx gzip
- 本文链接: https://code.itptg.com/article/13
- 版权声明: 本文由老魏原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权