Nginx 开启 Gzip 完整配置

一、核心配置(推荐直接放在 http{} 全局块,所有站点生效)

打开 nginx 主配置文件,一般路径: /etc/nginx/nginx.conf

nginx 复制代码
http {
    # 开启gzip
    gzip on;

    # 低于此大小不压缩,单位bytes,建议1k,小文件压缩得不偿失
    gzip_min_length 1024;

    # 压缩级别 1-9,数字越大压缩率越高、CPU消耗越高,一般5足够
    gzip_comp_level 5;

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

    # 是否在响应头添加 Vary: Accept-Encoding(建议开启,代理环境必备)
    gzip_vary on;

    # 代理服务器缓存压缩标识(反向代理场景开启)
    gzip_proxied any;

    # IE6及以下禁用gzip(兼容老浏览器)
    gzip_disable "MSIE [1-6]\.";

    # 缓冲区,默认即可,可选配置
    gzip_buffers 4 16k;
}

如果你只想单个网站启用 ,把上面配置放到对应 server {} 块内。

二、重要注意点

不要加图片格式(jpg/png/gif/webp) 图片本身已经压缩,再次 gzip 收益极小,浪费 CPU;只压缩文本类资源。

三、生效步骤

  1. 检查配置语法
bash 复制代码
nginx -t
  1. 重载 Nginx(不中断服务)
bash 复制代码
nginx -s reload

四、验证是否生效

方式 1 curl 测试

bash 复制代码
curl -I -H "Accept-Encoding: gzip" https://你的域名/style.css

返回头部出现: Content-Encoding: gzip → 代表成功

方式 2 浏览器 F12

网络面板 → 选中资源 → 响应头查看 Content-Encoding: gzip

五、常见问题

  1. 配置写了不生效
  • 确认配置放在 http{} / server{},不要放在 location{} 之外错误层级

  • nginx -t 是否报错

  • 有没有其他地方重复 gzip off; 覆盖配置

  1. 反向代理后端返回不压缩 加上 gzip_proxied any;

  2. 静态小文件不压缩 由 gzip_min_length 1024 控制,小于 1KB 不会压缩,属于正常策略。

相关推荐
不灭的程序员阿澄6 小时前
Nginx 容器化部署实战:SPA 路由、Cookie 透传与 WebSocket 全配置详解
websocket·nginx·状态模式
Csxyzj7 小时前
Nginx:企业高性能web服务器(一)
运维·服务器·nginx
Linux运维技术栈8 小时前
云平台服务器遭遇黑客攻击?用 Nginx 批量封锁敏感接口,自动返回 444 关闭连接
运维·服务器·nginx·安全·防御
life码农21 小时前
Linux截取Nginx指定时间段日志的三种方法(grep/awk/sed)
linux·nginx
小飞侠在吗1 天前
Windows 下 Nginx 访问 127.0.0.1 报 50x 错误:根因是路径里 \t 被当成 Tab
运维·windows·nginx
liuyicenysabel1 天前
Flask 个人站 iProfile 上线笔记(k3s + Nginx + Let‘s Encrypt)
笔记·nginx·flask
Jimmy_jimi2 天前
利用nginx代理完成url重定位
运维·nginx
东风破_3 天前
Docker 基础:为什么需要容器?
前端·后端·nginx
东风破_3 天前
Docker 实战:使用 Nginx 作为容器入口代理 Node 服务
前端·后端·nginx