Nginx配置Gzip压缩,提升网站加载速度

前言

网站打开慢?带宽不够?开启Nginx的Gzip压缩,能把文件体积压缩70%以上,加载速度立马提升好几倍。本文讲怎么配置。

一、什么是Gzip

Gzip是一种压缩算法,Nginx在发给浏览器之前先把文件压缩,浏览器收到后自动解压。

效果:

  • HTML/CSS/JS文件压缩70%左右
  • 减少带宽
  • 加载更快

二、配置Gzip

打开Nginx配置文件:

vi /etc/nginx/nginx.conf

在http段里加:

gzip on;
gzip_min_length 1k;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
gzip_vary on;
gzip_buffers 16 8k;
gzip_http_version 1.1;

参数解释

参数 含义
gzip on 开启gzip
gzip_min_length 1k 小于1k的文件不压缩
gzip_comp_level 6 压缩级别1-9,6最合适
gzip_types 压缩哪些类型的文件
gzip_vary on 给响应头加Vary: Accept-Encoding
gzip_buffers 压缩缓冲区

压缩级别说明

级别 效果
1 最快,压缩率最低
6 推荐,平衡
9 最慢,压缩率最高

推荐用6,不要用9,太吃CPU。

三、验证配置

nginx -t

重载Nginx:

nginx -s reload

四、验证是否生效

方法1:curl测试

curl -I -H "Accept-Encoding: gzip" https://www.0454.wang/

看到响应头有:

Content-Encoding: gzip

就是生效了。

方法2:浏览器F12

按F12打开开发者工具 → Network → 点请求 → 看Response Headers:

Content-Encoding: gzip

五、哪些文件该压缩

该压缩的

  • HTML文件
  • CSS文件
  • JS文件
  • JSON数据
  • SVG图片

不该压缩的

  • 图片(jpg/png):本身已经压缩过了
  • 视频:太大,压缩没意义
  • 压缩包(zip/rar):已经压缩过了

六、常见坑

坑1:只在http段配了,但server段覆盖了

检查: 看server段有没有gzip off。

坑2:gzip_types没写全

问题: JS文件没压缩。

解决: 加上application/javascript。

坑3:压缩级别太高

问题: 用了9,CPU飙升。

解决: 改成6。

坑4:CDN缓存了旧文件

问题: 配置了gzip但CDN没生效。

解决: 刷新CDN缓存。

七、完整配置示例

http {
    gzip on;
    gzip_min_length 1k;
    gzip_comp_level 6;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
    gzip_vary on;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;

    server {
        listen 80;
        server_name www.0454.wang;
        root /var/www/html;
        index index.html;
    }
}

八、对比效果

没开Gzip

HTML文件:100KB

开了Gzip

HTML文件:25KB

省了75%!

总结

记住:

  1. 开启gzip on
  2. 压缩级别用6
  3. gzip_types要写全
  4. 图片不要压缩
  5. 用curl验证是否生效

最常用配置:

gzip on;
gzip_min_length 1k;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
gzip_vary on;

遇到问题加QQ23979811 协助处理


emer 发布于  2026-10-9 07:51 

Nginx配置gzip压缩,提高网站加载速度

前言

网站加载慢,很大原因是没开压缩。CSS、JS 文件动辄几百 KB,开了 gzip 之后能压缩到原来的 1/3,加载速度提升明显。本文就讲一下怎么在 Nginx 里配置 gzip 压缩。

为什么要开 gzip

举个例子:

  • 一个 CSS 文件原始大小 100KB
  • 开了 gzip 之后变成 20KB
  • 传输体积减少 80%

浏览器收到压缩内容后自动解压,用户无感知。

基础配置

在 nginx.conf 的 http 块里加上:

http {
    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
    gzip_min_length 1k;
    gzip_comp_level 6;
    gzip_vary on;
}

配置项说明

gzip on:
开启 gzip 压缩。

gzip_types:
哪些类型的文件需要压缩。

  • text/plain:文本
  • text/css:CSS
  • application/json:JSON
  • application/javascript:JS
  • image/svg+xml:SVG 图片

gzip_min_length:
小于 1KB 的文件不压缩(压缩本身也占 CPU,小文件不值得压)。

gzip_comp_level:
压缩级别,1 到 9,6 比较合适(越大压得越狠,但越占 CPU)。

gzip_vary on:
给响应头加 Vary: Accept-Encoding,告诉 CDN 和缓存,这个内容是压缩过的。

完整示例

http {
    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
    gzip_min_length 1k;
    gzip_comp_level 6;
    gzip_vary on;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
}

检查并重载

nginx -t
systemctl reload nginx

验证 gzip 是否生效

用 curl 测试

curl -H "Accept-Encoding: gzip" -I https://www.example.com

如果返回头里有:

Content-Encoding: gzip

说明 gzip 生效了。

用浏览器 F12 测试

打开浏览器 F12 → Network → 点一个 JS/CSS 文件 → Response Headers,看有没有 Content-Encoding: gzip。

注意事项

不要压缩图片

JPG、PNG 这些图片本身已经是压缩过的,再压 gzip 没什么效果,还浪费 CPU。所以 gzip_types 里不要加 image/jpeg、image/png 这些。

不要压缩太小的文件

太小的文件(比如小于 1KB)压缩完反而可能变大,所以用 gzip_min_length 过滤掉。

压缩级别不要太高

gzip_comp_level 设到 9 没意义,压不了多少,CPU 占用还高。6 就够了。

常见坑

坑1:开了 gzip 但没生效

配置写了,但浏览器看到的还是没压缩的。

排查:

  1. 看文件大小是不是小于 gzip_min_length
  2. 看 gzip_types 里有没有包含这种类型
  3. 看浏览器请求头里有没有 Accept-Encoding: gzip

坑2:HTML 没压缩

只压缩了 CSS 和 JS,HTML 没压缩。

原因: gzip_types 里没写 text/html。

注意: text/html 是默认就压缩的,不用写在 gzip_types 里。

坑3:CDN 缓存了没压缩的版本

开了 gzip,但 CDN 上缓存的还是旧的没压缩的文件。

解决: 清一下 CDN 缓存,或者等 CDN 自动更新。

总结

gzip 配置很简单,就几行:

配置项 推荐值 作用
gzip on 开启压缩
gzip_types text/css application/javascript ... 压缩哪些文件
gzip_min_length 1k 小于多少不压
gzip_comp_level 6 压缩级别
gzip_vary on 加 Vary 头

开了 gzip 网站加载速度立马快一截,零成本优化,一定要开。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-10-5 07:59 
'); })();