Nginx提供了强大的压缩功能,可以显著减少传输数据量,提高网站性能。以下是配置Nginx进行HTTP压缩和解压缩的详细方法。
Nginx可以对服务器响应进行压缩,这是最常见的压缩使用场景。
gzip on; # 启用gzip压缩
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 1024; # 只压缩大于1KB的文件
gzip_comp_level 6; # 压缩级别(1-9),6是较好的平衡点
http {
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;
}
Nginx也可以解压缩客户端发送的压缩请求体:
location /upload {
client_max_body_size 100m;
gunzip on; # 启用请求解压缩
# 其他配置...
}
如果需要更好的压缩率,可以使用Brotli算法(需要Nginx支持):
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
Nginx支持两种压缩方式:
gzip on;
# 每次请求时实时压缩
gzip_static on; # 优先使用预压缩文件(.gz)
# 需要预先使用gzip命令生成压缩文件
可以使用以下方法验证压缩是否正常工作:
使用curl命令:
curl -H "Accept-Encoding: gzip" -I http://yourdomain.com
查看返回头中是否有Content-Encoding: gzip
浏览器开发者工具中查看网络请求,检查响应头
比较压缩前后的文件大小
通过合理配置Nginx的压缩功能,可以显著减少传输数据量,提高网站加载速度,特别是在移动网络环境下效果更为明显。