在使用Apache2.X的版本开始在默认都有开启Gzip页面压缩模块,即deflate_module和headers_module,如果不确定可以用查看一下安装好的Apache下是否有这两个模块
[root@localhost ~]# httpd -M|egrep 'deflate_module|headers_module'
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
Syntax OK
deflate_module (shared)
headers_module (shared)
像这样一般都是有安装加载过的,而在Apache下开启Gzip配置也很简单只要在http.conf配置文件中简单配置下就可以实现,如下:
SetOutputFilter DEFLATE #开启强制输出过滤,当然也可以指定输入已某些文件的强制输入压缩
#AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript
DeflateCompressionLevel 9 #启用压缩级别,1-9由低到高,级别越高压缩比例越高,但CPU的使用率也随之增高
在这里需要注意的有几点,开启Gzip时需要请求的资源必须是静态页面,如php这样的动态页面在压缩后又解压开来就没有实际的效果,其次是因为动态页面压缩没有效果所以在选择哪种资源需要过滤压缩时所用的过滤规则则有如下几种:
1、强制过滤器(SetInputFilter, SetOutputFilter),输入输出时强制指定压缩
2、选择性过滤器。分为按扩展名过滤(AddHandler),按MIME类型过滤(AddInputFilter)
3、过滤器内部参数过滤,如CaseFilter(文件过滤)
最后就是服务器资源问题,所使用的服务器是否有足够的CPU资源用于Gzip压缩,在成功开启页面压缩后用浏览器查看消息头就会有显示Gzip的字样: