温馨提示×

linux nginx如何开启gzip

小樊
39
2026-10-29 03:20:12
栏目: 智能运维

在 Linux 下使用 Nginx 开启 Gzip 压缩,主要通过修改 Nginx 的配置文件来实现。下面是详细步骤:


一、修改 Nginx 配置文件

通常 Nginx 主配置文件位于:

/etc/nginx/nginx.conf

或者某些发行版(如 Ubuntu)会包含:

/etc/nginx/conf.d/*.conf
/etc/nginx/sites-enabled/*

1. 编辑 nginx.conf

sudo vi /etc/nginx/nginx.conf

在 http 块中加入或修改以下配置:

http {
    # 开启 gzip
    gzip on;

    # 压缩级别 1-9,默认 6(越高越耗 CPU)
    gzip_comp_level 6;

    # 最小压缩文件大小,小于该值不压缩
    gzip_min_length 1k;

    # 压缩的缓冲区
    gzip_buffers 4 16k;

    # 支持的 HTTP 版本
    gzip_http_version 1.1;

    # 需要压缩的文件类型
    gzip_types text/plain text/css application/json application/javascript
               text/xml application/xml application/xml+rss text/javascript
               image/svg+xml;

    # 是否给代理请求也压缩
    gzip_proxied any;

    # 前端看到是否启用了 gzip(可选)
    gzip_vary on;
}

二、检查配置并重启 Nginx

# 检查配置是否正确
sudo nginx -t

# 重新加载配置
sudo systemctl reload nginx

或(老版本):

sudo service nginx reload

三、验证 Gzip 是否生效

方法 1:使用 curl

curl -I -H "Accept-Encoding: gzip" http://your-domain.com/

如果看到:

Content-Encoding: gzip

说明已开启成功。

方法 2:浏览器开发者工具

打开 F12 → Network → 查看响应头中是否有:

Content-Encoding: gzip

四、常见问题说明

1. 图片是否需要 gzip?

  • jpg / png / gif 本身已压缩,不建议 gzip
  • svg / ico 可压缩

2. 为什么没生效?

  • 文件小于 gzip_min_length
  • gzip_types 未包含对应 MIME 类型
  • 使用了 proxy_pass 但未配置 gzip_proxied

如果你愿意,可以告诉我:

  • 你的 Linux 发行版(CentOS / Ubuntu / Debian)
  • Nginx 版本
  • 是静态站点还是反向代理

我可以给你更精确的配置示例。

0 踩