CentOS下Apache启用gzip压缩功能

时间:2022-04-26 19:59:11

系统概况,主机CentOS6.2 Apache2.4 php5.3.6 mysql5.5

开始:首先得确认apache是否已经加载了mod_deflate模块

1.httpd -M

在结果中查看是否有 deflate_module (shared) 这样的一行字段,如果有说模块己加成功。如果没有需先安装加载mod_deflate模块。

确认你的Apache 版本2.0以上有deflate 模块,也就是找到http.conf 配置文件查找是否有LoadModule deflate_module modules/mod_deflate.so一般是默认有的,记得要是前面有“#”就去掉使之生效。

2 如果此模块不在列表中,

如何安装加载mod_deflate模块。

mod_deflate模块是必须安装加载的。现在介绍如何安装。

对照版本找到mod_deflate.c 可以用命令#find / -name mod_deflate.c  假设找到的路径是/home/cpeasyapache/src/httpd-2.2.23/modules/filters/mod_deflate.c

 然后进入到/home/cpeasyapache/src/httpd-2.2.23/modules/filters/路径下面,例如执行/usr/local/apache/bin/apxs -i -c -a mod_deflate.c 进行安装(注意这样的方法是针对你的用源码安装的apache 路径大概是/usr/local/apache2.x.x/bin/ ), 例如我的路径是/usr/local/apache/bin/ )。apxs 命令详细说明请您google下吧!这里就不多说了。

第三:找的httpd.conf 配置文件,一般在两个地方1./etc/http/conf/httpd.conf  2. /usr/local/apache/conf/httpd.conf 实在不好找就 shell下执行#find / -name httpd.conf 切忌修改前一定要备份这是非常好的习惯。

第四:编辑htppd.conf 文件 在最后加入下面代码,可以vim + http.conf 这样光标就自动到了http.conf最后一行,复制下面的代码

<IfModule mod_deflate.c>
DeflateCompressionLevel 6
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
AddOutputFilter DEFLATE css js
</IfModule>

上面的数字6 是代表压缩比例,html php css js 这些不用多说了都是根据您的实际情况选择添加。

DeflateCompressionLevel 9是指压缩程度的等级,从1到9,9是最高等级。据了解,这样做最高可以减少8成大小的传输量(看档案内容而定),最少也能够节省一半。

DeflateCompressionLevel 预设可以采用 6 这个数值,以维持耗用处理器效能与网页压缩质量的平衡。

补充

至于已经是压缩过的图片格式如jpg,音乐档案如mp3、压缩文件如zip之类的,就没必要再压缩了,因为这种档案你一开放服务器传输时压缩,处理器时间会跑不完,而且就算你跑完,大小也一样,如果使用PHP函数之类压缩过的文件,httpd服务是不会再次压缩的,系统级别的处理,总会比应用级别的效率高吧。


第五:最后就是保存退出,service httpd restart 重启apache服务。