Nginx以及CDN配置中Gzip / Brotli 压缩使用说明

› 社区话题 › Linux/macOS 与自动化运维 › Nginx以及CDN配置中Gzip / Brotli 压缩使用说明

136

标签:

正在查看 1 条回复
  • 作者
    帖子
    • #459

      追光
      管理员

      当然可以,以下是一篇完整、专业且实用的关于 Gzip 与 Brotli(br)压缩的使用说明文档,涵盖了其工作原理、适用范围、各类 CDN 配置格式,以及 Nginx 示例。


      ? Gzip / Brotli 压缩使用说明

      一、原理简介

      ? Gzip 和 Brotli 是什么?

      • Gzip :一种广泛使用的压缩算法,几乎所有浏览器都支持。

      • Brotli (br) :Google 开发的更高效压缩算法,体积更小,适用于现代浏览器。

      这两者都属于 HTTP 内容压缩 方式。服务器根据客户端的 Accept-Encoding 请求头返回相应的压缩版本,从而减小资源体积,提高加载速度。

      Nginx编译安装ngx_brotli方法,兼容宝塔Nginx模块编译


      二、压缩的主要对象

      Gzip 和 Brotli 都适用于 文本类文件 ,压缩率高,收益显著。

      ✅ 建议开启压缩的文件类型:

      类型

      示例 MIME

      常见扩展名

      文本

      text/html , text/plain , text/css

      .html , .css , .txt

      脚本

      application/javascript , text/javascript , application/json

      .js , .json

      数据

      application/xml , application/rss+xml

      .xml , .rss , .atom

      字体

      font/woff , font/woff2 , application/font-woff

      .woff , .woff2

      矢量图

      image/svg+xml

      .svg

      字幕

      text/vtt

      .vtt


      三、⚠️ 不推荐压缩的类型

      因为这些文件本身就已压缩或压缩后收益极小,甚至会增加负担:

      类型

      常见扩展名

      图像

      .jpg , .png , .webp , .gif , .avif

      视频

      .mp4 , .webm , .mov

      音频

      .mp3 , .ogg , .aac , .flac

      压缩包

      .zip , .gz , .7z , .rar


      四、Nginx 配置示例

      以下为一份推荐的 Nginx 配置,开启了 Gzip,并适配主流类型:

      # 开启 Gzip
      gzip on;
      gzip_vary on;
      gzip_proxied any;
      gzip_comp_level 6;
      gzip_min_length 512;
      gzip_types
      text/plain
      text/css
      text/javascript
      application/javascript
      application/x-javascript
      application/json
      application/xml
      application/rss+xml
      application/atom+xml
      image/svg+xml
      font/woff
      font/woff2;

      # Brotli(需安装 Brotli 模块)

      brotli on;
      brotli_comp_level 6;
      brotli_types
      text/plain
      text/css
      text/javascript
      application/javascript
      application/json
      application/xml
      image/svg+xml
      font/woff
      font/woff2;

      合并写到一起记录

              gzip on;
      gzip_min_length 1k;
      gzip_buffers     4 16k;