最近做了一个网站(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
到此,您的网站这开启压缩功能,实际效果可以体验一下了。