centos+apache 2.x 开启gzip压缩

最近做了一个网站(PHP+Apache+MySQL),挂在百度云平台上面,基本配置是2G内存+5Mb带宽,每次打开主页都需要2-3s左右的时间,对于一个垂直搜索引擎来说,用户体验肯定会很差。

于是开始查找解决办法,发现可以对网站进行gzip/deflate压缩,这个大大减少网页传输时间(减少60-70%左右),据说后者(deflate)方法,效果更加(道听途说,未经证实)。

于是开始摸索http开始deflate压缩功能。具体过程简述如下:

1. 首先查看 httpd加载的模块

1 httpd -M

查看有没有deflate.so模块的加载,如果没有,需要到httpd modules目录中查看是否已经安装, 使用如下命令

ll | grep deflate

如果显示 “ mod_deflate.so”,则说明已经安装,可以继续以下步骤。如果没有安装,请绕行。

2. 加载模块

1 LoadModule deflate_module modules/mod_deflate.so 
2 LoadModule headers_module modules/mod_headers.so 

3. 设置需要压缩和不需压缩的文件

1 <IfModule deflate_module> 
2 SetOutputFilter DEFLATE 
3 SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary 
4 SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary 
5 SetEnvIfNoCase Request_URI .(?:pdf|doc|avi|mov|mp3|rm)$ no-gzip dont-vary 
6 AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css 
7 AddOutputFilterByType DEFLATE application/x-javascript 
8 </IfModule> 

代码中 SetEnvIfNoCase 设置不用压缩的类型,如png,jp[e]g,或是已经压缩的文档等;后面两行这是开启压缩的文件 css/js/html等。

4. 重新启动 httpd

1 systemctl restart httpd

到此,您的网站这开启压缩功能,实际效果可以体验一下了。