Gzip压缩是减少网页加载时间、节省带宽的有效方法。以下是Nginx中配置Gzip压缩的详细方案:
在nginx.conf的http模块中添加以下配置:
gzip on; # 开启gzip压缩
gzip_min_length 1k; # 最小压缩文件大小
gzip_buffers 4 16k; # 压缩缓冲区
gzip_http_version 1.1; # 压缩版本
gzip_comp_level 6; # 压缩级别1-9,6是较好的平衡点
gzip_types text/plain text/css text/javascript application/javascript application/x-javascript application/json application/xml application/xml+rss text/xml image/svg+xml; # 压缩类型
gzip_vary on; # 根据客户端Accept-Encoding头启用压缩
gzip_disable "MSIE [1-6]\."; # 对不支持gzip的IE6以下禁用
压缩级别选择:
压缩类型扩展:
gzip_types text/plain text/css text/javascript application/javascript application/x-javascript
application/json application/xml application/xml+rss text/xml
image/svg+xml font/ttf font/otf font/woff font/woff2;
预压缩静态文件:
gzip -k -9 style.css # 生成style.css.gz
Brotli压缩(Nginx 1.11.5+):
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css text/javascript application/javascript application/x-javascript
application/json application/xml application/xml+rss text/xml
image/svg+xml font/ttf font/otf font/woff font/woff2;
http {
# ...其他配置...
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_types text/plain text/css text/javascript application/javascript
application/x-javascript application/json application/xml
application/xml+rss text/xml image/svg+xml font/ttf
font/otf font/woff font/woff2;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
# 如果有Brotli支持
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css text/javascript application/javascript
application/x-javascript application/json application/xml
application/xml+rss text/xml image/svg+xml font/ttf
font/otf font/woff font/woff2;
# ...其他配置...
}
检查配置语法:
nginx -t
重新加载配置:
nginx -s reload
验证压缩是否生效:
bash
curl -I -H "Accept-Encoding: gzip" http://yourdomain.com
Content-Encoding: gzip
响应头通过合理配置Gzip压缩,通常可以减少60-70%的文本资源传输量,显著提高网页加载速度。