目前gzip是一种使用非常广泛的文本压缩方式,尤其在linux平台,而且压缩下过非常明显,通常能压缩70%以上。
压缩过的网站除了可以节省流量,更能改善用户体验,好处不言而喻。但是,有一个问题就是在压缩和解压缩的时候会增加CPU的压力。
今天我分别对PHP网站以及tomcat部署的网站进行压缩
一:PHP网站
php网站又两种压缩方式
方法1.通过使用php zlib扩展实现页面gzip压缩,即使用php内置的函数ob_gzhandler进行gzip压缩输出。
只需在所有页面的头文件增加以下代码
<?php
if(extension_loaded(‘zlib’) && strstr($_SERVER[‘HTTP_ACCEPT_ENCODING’],’gzip’)){
ob_start(‘ob_gzhandler’);
}else{
exit(‘php zlib使用失败,请确认是否已加载zlib扩展’);
}
?>
在底部页面增加以下代码
<?php
if(extension_loaded(‘zlib’)){ob_end_flush();}
?>
将上面的代码加到页面中即可。效果如下
方法2 通过修改php.ini配置文件开启php gzip以实现压缩页面信息压缩传输
找到php.ini配置文件中的
zlib.output_compression = Off
zlib.output_compression_level = -1
改为
zlib.output_compression = On
zlib.output_compression_level = 6
重启apache
找到httpd.conf中的
#LoadModule deflate_module modules/mod_deflate.so
把前面的#(注释)拿掉
重启apache,完成
注意:
- 方法1,方法2选其一,不然会报错
2. zlib.output_compression_level代表压缩比,默认推荐设置压缩比值为6,可选范围为1-9,-1代表关闭php zlib(gzip)压缩
二:tomcat部署下的网站
找到tomcat/conf目录下的server.xml文件
打开,找到Service 节点下的Connector
新增
compression=”on”
compressionMinSize=”2048″
noCompressionUserAgents=””
compressableMimeType=”text/html,text/xml,text/plain,text/css,text/javascript,application/javascript”
如下:
compression=”on”//是否启用压缩
compressionMinSize=”2048″//只有超过当前设置数值大小的页面才启用压缩(单位是字节B)如果不指定默认大小为2048
noCompressionUserAgents=””//不进行压缩的浏览器
compressableMimeType=”text/html,text/xml,text/plain,text/css,text/javascript,application/javascript”//要进行压缩的文件
注意:
如果之前配置过https就要在443端口下配置相同的内容,如下
效果