Appearance
Gzip压缩
启用Gzip压缩可以减少传输数据量,提高网站性能。
基本配置
启用Gzip
nginx
gzip on;
gzip_vary on;
gzip_min_length 1000;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml text/javascript application/json application/javascript application/xml+rss;完整配置
生产环境配置
nginx
http {
gzip on;
gzip_vary on;
gzip_min_length 1000;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml text/javascript application/json application/javascript application/xml+rss image/svg+xml;
gzip_disable "msie6";
}参数说明
gzip
on
- 启用Gzip压缩
- 推荐启用
gzip_vary
on
- 添加Vary头
- 告诉代理服务器缓存压缩版本
- 推荐启用
gzip_min_length
1000
- 最小压缩文件大小
- 小于该值不压缩
- 推荐值:1000
gzip_comp_level
6
- 压缩级别(1-9)
- 级别越高压缩率越高,但CPU消耗越大
- 推荐值:6
gzip_types
text/plain text/css text/xml text/javascript application/json application/javascript application/xml+rss
- 压缩的MIME类型
- 推荐压缩文本类型
gzip_disable
"msie6"
- 禁用特定浏览器的压缩
- IE6不支持Gzip
- 推荐禁用IE6
完整示例
生产环境配置
nginx
http {
# Gzip压缩
gzip on;
gzip_vary on;
gzip_min_length 1000;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml text/javascript application/json application/javascript application/xml+rss image/svg+xml;
gzip_disable "msie6";
# Gzip缓冲区
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_proxied any;
}Gzip缓冲区
基本配置
nginx
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_proxied any;参数说明
gzip_buffers
- Gzip缓冲区
- 格式:数量 大小
- 推荐值:16 8k
gzip_http_version
- HTTP版本
- 默认值:1.1
- 推荐值:1.1
gzip_proxied
- 代理请求的压缩策略
- any:所有代理请求都压缩
- 推荐值:any
完整示例
生产环境配置
nginx
http {
# Gzip压缩
gzip on;
gzip_vary on;
gzip_min_length 1000;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml text/javascript application/json application/javascript application/xml+rss image/svg+xml;
gzip_disable "msie6";
# Gzip缓冲区
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_proxied any;
# 客户端缓冲区
client_body_buffer_size 128k;
client_max_body_size 10m;
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
# 代理缓冲区
proxy_buffer_size 4k;
proxy_buffers 8 4k;
proxy_busy_buffers_size 8k;
proxy_buffering on;
}测试Gzip
使用curl测试
bash
curl -I -H "Accept-Encoding: gzip" http://example.com/预期结果:
Content-Encoding: gzip使用浏览器测试
- 打开浏览器开发者工具
- 查看Network标签
- 检查响应头是否包含
Content-Encoding: gzip
常见问题
Gzip未生效
原因: gzip未启用或配置错误
解决: 检查gzip配置
nginx
gzip on;
gzip_types text/plain text/css text/xml text/javascript application/json application/javascript application/xml+rss;压缩率低
原因: gzip_comp_level设置过低
解决: 提高压缩级别
nginx
gzip_comp_level 6;总结
Gzip压缩的关键点:
- gzip on:启用Gzip压缩
- gzip_vary:添加Vary头
- gzip_min_length:设置最小压缩文件大小
- gzip_comp_level:设置压缩级别
- gzip_types:设置压缩的MIME类型
- gzip_disable:禁用特定浏览器的压缩
合理配置Gzip压缩,减少传输数据量,提高网站性能。