启用网站空间的Gzip压缩传输

启用gzip压缩能在花费少量系统资源的情况下,压缩网络传输数据量,目前压缩率基本在50%以上,甚至能达到80%,在网速较慢的情况下,能带来不错的效果。

ICDSoft的空间默认没启用Gzip传输压缩,需要自行设置.htaccess文件来启用,其他使用apache的空间应该也可以照搬。从下面的内容可以看出,对GIF、JPG、PNG等等的图像内容,是不进行压缩的,因为这些内容本身已经是压缩格式,再进行压缩没有太大意义,甚至反而会增加文件大小。

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_keep_workfiles No
mod_gzip_can_negotiate Yes
mod_gzip_add_header_count Yes
mod_gzip_send_vary Yes
mod_gzip_command_version ‘/mod_gzip_status’
mod_gzip_min_http 1000
mod_gzip_minimum_file_size 300
mod_gzip_maximum_file_size 512000
mod_gzip_maximum_inmem_size 60000
mod_gzip_handle_methods GET POST
mod_gzip_temp_dir /tmp
mod_gzip_item_include file \.html$
mod_gzip_item_include file \.php$
mod_gzip_item_include file \.pl$
mod_gzip_item_include file \.rb$
mod_gzip_item_include file \.py$
mod_gzip_item_include file \.cgi$
mod_gzip_item_include file \.css$
mod_gzip_item_include file \.js$
mod_gzip_item_include mime ^application/javascript$
mod_gzip_item_include mime ^application/x-javascript$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^httpd/unix-directory$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include handler ^server-status$
mod_gzip_item_include handler ^server-info$
mod_gzip_item_include handler ^application/x-httpd-php
mod_gzip_item_exclude mime ^image/.*
</IfModule>

mod_gzip是用于Apache 1.3的模块,而在Apache 2中,mod_gzip的功能改由deflate_module模块提供。在.htaccess中使用以下脚本启用deflate_module,将会对HTML, SSI, PHP, Perl, Ruby, Python, CGI, Cascading Style Sheets, JavaScript 和文本文件进行压缩输出。

<IfModule deflate_module>
AddOutputFilterByType DEFLATE text/css text/csv text/html text/plain text/richtext text/sgml text/tab-separated-values application/javascript application/x-javascript httpd/unix-directory
AddOutputFilter DEFLATE html htm shtml php php4 pl rb py cgi css js txt
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>

 

2012.10.14更新:最近在网上看到有文章介绍,通过在PHP.ini配置中,添加zlib.output_compression参数来启用gzip压缩,实际上在使用Apache的主机上是有一定局限性的,在使用Apache的主机上,推荐采用gzip_mod模块启用gzip压缩,这样对类似HTML、CSS、Javascript、Ruby on Rails、Python、CGI等等内容,都能进行gzip压缩传输。

2013.01.31更新:今天回想起来这篇文章,顺便更新一下,把内容稍微修改一下,让描述更准确一些。目前ICDSoft的全部服务器都升级到Apache2.4了,所以要启用网页压缩,就要使用deflate_module了。