原创

在 Nginx 中配置 Gzip 提升网站访问速度

温馨提示:
本文最后更新于 2025年07月16日,已超过 10 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

一、什么是 Gzip 压缩

Gzip 是一种基于 DEFLATE 算法的压缩格式,能够显著减少网页资源(如 HTML、CSS、JavaScript 等)的传输体积,从而降低带宽消耗并提升页面加载速度。

二、为什么要在 Nginx 中开启 Gzip

  1. 减少传输大小
    对文本资源进行压缩后,通常能减少 60%~80% 的传输量。
  2. 提升用户体验
    页面加载更快,用户等待时间更短,降低跳出率。
  3. 节省服务器带宽
    带宽成本降低,尤其对于高流量网站效果显著。

三、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 是否生效

  1. 浏览器开发者工具
    打开 Network 面板,刷新页面,查看请求响应头中是否包含:

    Content-Encoding: gzip
    
  2. 命令行测试

    curl -I -H "Accept-Encoding: gzip" https://your-domain.com
    

    若返回头部中有 Content-Encoding: gzip,则表示已启用压缩。

五、实战建议

  • 合理选取压缩级别
    对于 CPU 资源丰富的服务器可适当提高级别,反之可设置为 4 或 5。
  • 结合缓存使用
    ExpiresCache-Control 搭配,可最大程度减少重复请求。
  • 动态与静态分离
    对于大静态文件(如图片、视频),无需 Gzip,可由 CDN 或专门存储;Gzip 主要针对文本类资源。

六、总结

通过在 Nginx 中配置 Gzip 压缩,可以在不影响用户体验的前提下,显著降低资源传输大小、节省带宽并提升页面加载速度。本文示例仅供参考,请根据实际业务场景和服务器性能进行调优。


正文到此结束
本文目录