温馨提示×

Linux LNMP如何开启Gzip

小樊
44
2026-07-10 23:10:25
栏目: 智能运维

Linux + LNMP(Nginx + MySQL + PHP) 环境下,Gzip 压缩是由 Nginx 负责的,PHP 本身不需要单独开启。下面给你一套常用、安全、可用的配置方法


一、确认 Nginx 是否支持 Gzip

一般 Nginx 默认已编译 ngx_http_gzip_module,可直接使用。

nginx -V 2>&1 | grep gzip

只要能看到 http_gzip_module 或没有报错,就支持。


二、在 Nginx 中开启 Gzip(推荐方式)

1️⃣ 编辑 Nginx 配置文件

通常位置是:

/etc/nginx/nginx.conf

或站点配置:

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

2️⃣ 在 httpserver 块中添加

推荐配置(通用)

http {
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_comp_level 5;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
    gzip_vary on;
    gzip_disable "MSIE [1-6]\.";
}

✅ 放在 http {} 里即可对所有站点生效。


三、参数说明(重要)

参数 说明
gzip on 开启 Gzip
gzip_min_length 小于该大小不压缩(避免浪费 CPU)
gzip_comp_level 压缩级别(1–9,推荐 4–6)
gzip_types 需要压缩的 MIME 类型
gzip_vary 让代理服务器识别是否支持 gzip
gzip_disable 禁止旧 IE 浏览器

⚠️ 不要压缩图片 / 视频

# 不推荐
gzip_types image/jpeg image/png;

四、检查并重启 Nginx

nginx -t
systemctl restart nginx

或:

service nginx restart

五、验证 Gzip 是否生效

方法 1:浏览器

打开开发者工具 → Network → 查看响应头:

Content-Encoding: gzip

方法 2:curl 验证

curl -H "Accept-Encoding: gzip" -I http://你的域名

看到:

Content-Encoding: gzip

✅ 成功


六、常见问题

❌ Gzip 没生效?

检查:

  1. 响应内容类型是否在 gzip_types
  2. 文件是否太小(< gzip_min_length
  3. 是否走了 HTTPS + CDN(CDN 可能已压缩)
  4. 是否被 proxy_pass 影响

✅ PHP 需要开启吗?

不需要

  • PHP 输出的是文本内容
  • Nginx 会自动压缩

七、LNMP 一键包用户注意

如果你用的是 LNMP.org 一键包

/usr/local/nginx/conf/nginx.conf

直接修改即可,配置方式完全一样。


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

  • ✅ 系统版本(CentOS / Ubuntu)
  • ✅ 是否使用 CDN
  • ✅ 想压缩的是接口 / 网页 / JS / CSS

我可以帮你给出最优配置方案

0