温馨提示×

ubuntu apache2怎么开gzip

小樊
45
2026-09-11 03:09:40
栏目: 智能运维

在 Ubuntu 上给 Apache2 开启 gzip(实际是 mod_deflate) 压缩,一般按下面步骤来:


一、启用必要模块

sudo a2enmod deflate
sudo a2enmod headers
sudo systemctl restart apache2
  • deflate:负责 gzip 压缩
  • headers:可选,用于设置缓存/压缩头

二、配置 gzip 压缩

方法 1:修改 Apache 配置文件(推荐)

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

sudo nano /etc/apache2/conf-available/compress.conf

加入以下内容:

<IfModule mod_deflate.c>
    # 压缩类型
    AddOutputFilterByType DEFLATE text/html text/plain text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/json
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE font/ttf font/otf 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

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

启用配置并重启:

sudo a2enconf compress
sudo systemctl restart apache2

方法 2:在虚拟主机中配置

编辑你的站点配置:

sudo nano /etc/apache2/sites-available/000-default.conf

<VirtualHost *:80> 内加:

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript
</IfModule>

然后:

sudo systemctl restart apache2

三、验证是否生效

1️⃣ curl 测试

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

看到:

Content-Encoding: gzip

说明成功 ✅

2️⃣ 浏览器验证

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

四、常见问题

❌ 没生效?

  • 确认模块已启用:apache2ctl -M | grep deflate
  • 确认文件类型在 AddOutputFilterByType
  • 静态资源(jpg/zip)本身就压缩过,不要再压

如果你用的是 PHP / WordPress / Laravel,或者 Apache + Nginx,可以告诉我,我给你更具体的配置。

0