Nginx配置Gzip压缩,提升网站加载速度
时间:2026-10-9 07:51 作者:emer 分类: 无
前言
网站打开慢?带宽不够?开启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%!
总结
记住:
- 开启gzip on
- 压缩级别用6
- gzip_types要写全
- 图片不要压缩
- 用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 协助处理