插件窝 干货文章 Nginx基础入门之gzip配置的方法

Nginx基础入门之gzip配置的方法

压缩 Gzip 文件 配置 777    来源:    2025-04-21

Nginx Gzip 压缩配置指南

Gzip 是一种常用的数据压缩方式,可以显著减少传输内容的大小,提高网站加载速度。以下是 Nginx 中配置 Gzip 压缩的详细方法。

基本 Gzip 配置

在 Nginx 配置文件中(通常在 nginx.confsites-available/your-site 中),添加以下配置:

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;  # 最小压缩文件大小
gzip_comp_level 6;  # 压缩级别(1-9)

完整配置参数说明

# 开启gzip
gzip on;

# 启用gzip压缩的最小文件,小于该值的文件将不会压缩
gzip_min_length 1k;

# gzip 压缩级别,1-9,数字越大压缩率越高,但消耗CPU资源也越多
gzip_comp_level 6;

# 进行压缩的文件类型
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary on;

# 禁用IE 6 gzip
gzip_disable "MSIE [1-6]\.";

# 设置用于处理请求压缩的缓冲区数量和大小
gzip_buffers 16 8k;

# 设置gzip压缩针对的HTTP协议版本
gzip_http_version 1.1;

最佳实践建议

  1. 压缩级别选择:通常 gzip_comp_level 6 提供了良好的压缩比和性能平衡。

  2. 文件类型:确保压缩文本类型文件(HTML、CSS、JS、JSON、XML等),但不要压缩已经压缩过的文件(如图片、PDF等)。

  3. 最小长度:设置合理的 gzip_min_length 避免压缩非常小的文件,因为压缩小文件可能得不偿失。

  4. 预压缩静态文件:对于不常变化的静态文件,可以预压缩并保存为 .gz 文件,然后配置 Nginx 直接提供预压缩版本:

gzip_static on;
  1. 结合缓存使用:Gzip 压缩与缓存配合使用效果更佳。

验证配置

  1. 测试配置是否正确:
sudo nginx -t
  1. 重新加载 Nginx:
sudo systemctl reload nginx
  1. 使用 curl 验证:
curl -H "Accept-Encoding: gzip" -I http://yourdomain.com | grep -i "content-encoding"

应该能看到 Content-Encoding: gzip 的响应头。

注意事项

  1. Gzip 压缩会消耗一定的 CPU 资源,在高流量网站上需要权衡压缩级别。

  2. 现代浏览器都支持 gzip 解压,无需担心兼容性问题。

  3. 如果使用 HTTPS,确保没有中间代理服务器重复压缩内容。

通过合理配置 Gzip 压缩,可以显著减少传输数据量,提高网站性能,特别是在移动网络环境下效果更为明显。