最近做了一个网站(PHP+Apache+MySQL),挂在百度云平台上面,基本配置是2G内存+5Mb带宽,每次打开主页都需要2-3s左右的时间,对于一个垂直搜索引擎来说,用户体验肯定会很差。
于是开始查找解决办法,发现可以对网站进行gzip/deflate压缩,这个大大减少网页传输时间(减少60-70%左右),据说后者(deflate)方法,效果更加(道听途说,未经证实)。
于是开始摸索http开始deflate压缩功能。具体过程简述如下:
1. 首先查看 httpd加载的模块
httpd -M
查看有没有deflate.so模块的加载,如果没有,需要到httpd modules目录中查看是否已经安装, 使用如下命令
ll | grep deflate
如果显示 “ mod_deflate.so”,则说明已经安装,可以继续以下步骤。如果没有安装,请绕行。
2. 加载模块
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
3. 设置需要压缩和不需压缩的文件
<IfModule deflate_module>
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|doc|avi|mov|mp3|rm)$ no-gzip dont-vary
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css
AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>
代码中 SetEnvIfNoCase 设置不用压缩的类型,如png,jp[e]g,或是已经压缩的文档等;后面两行这是开启压缩的文件 css/js/html等。
4. 重新启动 httpd
systemctl restart httpd
到此,您的网站这开启压缩功能,实际效果可以体验一下了。