apache之gzip模块或deflate模块的配置信息

检查apache是否有mod_deflate.so和mod_headers.so模块

<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
DeflateCompressionLevel 9
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript application/x-httpd-php
#BrowserMatch ^Mozilla/4 gzip-only-text/html
#BrowserMatch ^Mozilla/4\.0[678] no-gzip
#BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
#Explicit exclusion of files.
SetEnvIfNoCase Request_URI \.(?:gif|jpg|cab|jpe?g|exe|bmp|mp3|rar|zip|swf|png)$no-gzip dont-vary
#Cache server support.
#Header append Vary User-Agent env=!dont-vary logs.
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat ' "%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
CustomLog logs/deflate_log deflate
</IfModule>


<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript application/x-httpd-php
    DeflateCompressionLevel 9
    SetOutputFilter DEFLATE
    #DeflateFilterNote Input instream   
    #DeflateFilterNote Output outstream   
    #DeflateFilterNote Ratio ratio   
    #LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate   
    #CustomLog logs/deflate_log.log deflate   
</IfModule>

mod_expires模块添加是启用对有效期控制,也可以加里面,有效控制带宽成本

gzip功能能在消耗一点点CPU使用率的情况下,大幅减少网页在传输过程中的带宽(大约60%-75%)。

mod_expires,就是通过延长页面组件的有效期来加速网页的加载。

关于此两者的具体配置如下:

mod_expires

首先在httpd.conf中开启这个模块 
LoadModule expires_module modules/mod_expires.so

然后添加配置项目
<IfModule mod_expires.c> 
# 启用有效期控制
ExpiresActive On 
# GIF有效期为1个月(秒数)
ExpiresByType image/gif A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/png A2592000
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-javascript A604800
ExpiresByType text/plain A604800 
# HTML文档的有效期是最后修改时刻后的一星期
ExpiresByType text/html M604800
</IfModule>

"M"表示源文件的最后修改时刻,"A"表示客户端对源文件的访问时刻。后面的时间则以秒计算。

 

gzip(mod_deflate)

--> 正确区分mod_deflate和mod_gzip
所谓gzip,其实在早期的apache 1.x系列版本中没有内建网页压缩技术,所以才需要去gzip压缩,apache2官方在开发的时候,就已经把网页压缩考虑进去,内建了mod_deflate模块,所以apache2就不需要使用到mod_gzip了,这两者的工作原理是类似的,还有启用mod_deflate这个网页压缩的模块,功能和效率和mod_gzip是差不多的,甚至还好一些,就不需要再用mod_gzip模块了。

首先在httpd.conf中开启这个模块 
LoadModule deflate_module modules/mod_deflate.so

然后添加配置项目 
<IfModule mod_deflate.c>
# 压缩级别
DeflateCompressionLevel 9
# 压缩类型
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php
AddOutputFilter DEFLATE js css
# 启用日志记录
#DeflateFilterNote Input instream
#DeflateFilterNote Output outstream
#DeflateFilterNote Ratio ratio
#LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
#CustomLog logs/deflate_log.log deflate
</IfModule>

这样可以压缩一般网页中会用到的html、xml、php、css、js等格式档案输出,虽然会占用掉服务器处理器的一点点处理器时间,浏览者在接收 网页数据时也会消耗极短暂的一点点处理器时间,不过却可以大幅减少数据传输量,减少网络带宽被吃掉的情形。
DeflateCompressionLevel 9是指压缩程度的等级,从1到9,9是最高等级。据了解,这样做最高可以减少8成大小的传输量(看档案内容而定),最少也能够节省一半。
DeflateCompressionLevel 预设可以采用 6 这个数值,以维持耗用处理器效能与网页压缩质量的平衡。

补充
至于已经是压缩过的图片格式如jpg,音乐档案如mp3、压缩文件如zip之类的,就没必要再压缩了,因为这种档案你一开放服务器传输时压缩,处理器时间会跑不完,而且就算你跑完,大小也一样,如果使用PHP函数之类压缩过的文件,httpd服务是不会再次压缩的,系统级别的处理,总会比应用级别的效率高吧。

Apache 的 mod_deflate 和 gzip compression 的对比.

* 不使用任何压缩: 430KB
* 仅使用 gzip: 323KB
* 仅使用 Apache 的 deflate 模块: 247KB
* 同时使用 deflate 以及 gzip: 247KB

至於时间的部份, 差异倒不是很大, 大约都是在 10-20 秒左右。

本文出自 “linux进阶屋” 博客,谢绝转载!

你可能感兴趣的:(职场,休闲,apache压缩)