温馨提示×

centos下apache怎样开启gzip

小樊
45
2026-09-24 05:45:13
栏目: 智能运维

在 CentOS 下让 Apache 开启 Gzip 压缩,通常是通过 mod_deflate 模块实现的。下面按常见场景说明。


一、确认 Apache 已加载 mod_deflate

CentOS 默认一般已安装该模块,先检查:

httpd -M | grep deflate

如果看到:

deflate_module (shared)

说明已启用。

如果没有,可安装或启用:

yum install mod_deflate

二、开启 Gzip(推荐方式)

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

编辑配置文件:

vi /etc/httpd/conf/httpd.conf

或在:

/etc/httpd/conf.d/

下新建一个文件,例如 gzip.conf

添加以下内容:

<IfModule mod_deflate.c>
    # 压缩类型
    AddOutputFilterByType DEFLATE text/html text/plain text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE application/json
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE image/svg+xml

    # 浏览器兼容
    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|tgz|rar|bz2|mp3|mp4|avi|mov)$ no-gzip dont-vary
</IfModule>

三、虚拟主机中开启(可选)

如果你使用的是虚拟主机:

<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot /var/www/html

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

四、重启 Apache

systemctl restart httpd

或(老版本):

service httpd restart

五、验证 Gzip 是否生效

方法 1:curl 测试

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

看到:

Content-Encoding: gzip

说明成功。

方法 2:浏览器

F12 → Network → 查看响应头:

Content-Encoding: gzip

六、常见问题

1. gzip 没生效?

  • 确认 mod_deflate 已加载
  • 确认 MIME 类型写对
  • 静态文件(如 jpg/zip)本身已压缩,不需要 gzip

2. 和 mod_gzip 区别?

  • CentOS 7+ 一般用 mod_deflate
  • mod_gzip 较老,不推荐

如果你用的是 CentOS 版本(6/7/8) 或 Apache 2.2 / 2.4,可以告诉我,我可以给你更精确的配置。

0 踩