温馨提示×

ubuntu apache如何开启gzip

小樊
47
2026-09-20 12:53:14
栏目: 智能运维

在 Ubuntu + Apache 下开启 Gzip 压缩,通常是通过 mod_deflate 模块实现的。下面给出最常见、可用的做法。


一、启用 Apache Gzip 模块

1. 启用 mod_deflate

sudo a2enmod deflate

2. 重启 Apache

sudo systemctl restart apache2

二、配置 Gzip 压缩(推荐方式)

编辑 Apache 配置文件(任选其一):

  • 全局配置:
sudo nano /etc/apache2/conf-available/gzip.conf
  • 或站点配置:
sudo nano /etc/apache2/sites-available/000-default.conf

推荐配置示例

<IfModule mod_deflate.c>
    # 压缩常见文本类型
    AddOutputFilterByType DEFLATE text/html text/plain text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/javascript application/x-javascript
    AddOutputFilterByType DEFLATE application/json
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE font/woff font/woff2

    # 兼容老浏览器
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    # 不压缩已压缩文件
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|zip|gz|tar|bz2|rar|exe|mp3|mp4|avi|mov)$ no-gzip
</IfModule>

保存后:

sudo systemctl restart apache2

三、验证 Gzip 是否生效

方法 1:curl 测试

curl -I -H "Accept-Encoding: gzip" http://localhost

看到:

Content-Encoding: gzip

说明成功。

方法 2:浏览器

  • 打开 F12 → Network
  • 查看响应头是否包含:
Content-Encoding: gzip

四、常见问题

1. 已启用但无效?

  • 确认是 动态内容(PHP 等) 还是静态文件
  • PHP 中不要自己 gzencode()
  • 确认没有被 Nginx / CDN 拦截

2. Apache 2.4 注意

Ubuntu 20.04 / 22.04 默认已支持,无需额外安装。


如果你使用的是 Apache + PHP / Laravel / WordPress,或者 Docker 环境,可以告诉我,我可以给你更精确的配置。

0 踩