开启Apache2.*的Gzip和Expires模块,提升网页加载速度

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

一、gzip(mod_deflate)

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

如果尚未编译,请执行:
/usr/local/apache2/bin/apxs -c mod_deflate.c
gcc -shared -o mod_deflate.so mod_deflate.o
cp mod_deflate.so /usr/local/apache2.2.0/modules
/usr/local/apache2.2.0/bin/apxs -i -a -c 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

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

二、mod_expires(就是通过延长页面组件的有效期来加速网页的加载)

首先在httpd.conf中开启这个模块
LoadModule expires_module modules/mod_expires.so
如果尚未编译,请执行:/usr/local/apache2/bin/apxs -i -A -n expires mod_expires.so

然后添加配置项目:
# 启用有效期控制
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

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

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

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>