Apache 设置web 缓存

Apache 设置web 缓存

默认情况下,apache安装完以后,是不允许被cache的。如果外接了cache或squid服务器要求进行web加速的话,就需要在htttpd.conf里进行设置,当然前提是在安装apache的时候要激活mod_cache的模块。
以下简单介绍一下安装与配置的步骤:
1.        apache版本:httpd-2.0.49.tar.gz
2.        安装httpd-2.0.49.tar.gz:
# tar –zxvf httpd-2.0.49.tar.gz
# cd httpd-2.0.49
#./configure --enable-cache --enable-disk-cache --enable-mem-cache
#mke
#make install

3.        检验是否安装了cache模块
/usr/local/apache2/bin/apachectl –l
如果有mod_cache.c
  mod_disk_cache.c
  mod_mem_cache.c
这3个模块,说明该apache可以支持cache了
4.更改httpd.conf的设置
vi /usr/local/apache2/conf/httpd.conf
在末尾添加上:
<IfModule mod_cache.c>

CacheForceCompletion 100
  CacheDefaultExpire 3600
  CacheMaxExpire 86400
  CacheLastModifiedFactor 0.1
</IfModule>

5.设置虚拟目录
然后保存退出。启动apache

6.参数的解释:
mod_cache:
CacheEnable: 启动 mod_cache,其后接两个参数。第一个参数指定快取的种类,应设为 mem (记忆体快取) 或 disk (磁碟快取) 之其一;第二个参数指定使用快取的 URI 路径,如果对整个网站 (或虚拟主机) 进行快取,简单指定为根目录(/) 即可。
CacheForceCompletion: 这个值指定当 HTTP request 被取消时,内容的产生动作要完成的百分比;预设是 60(%)。
CacheDefaultExpire: 指定快取的预设过期秒数;预设值是一小时 (3600)。
CacheMaxExpire: 指定快取最大的过期秒数;预设值是一天 (86400)。
CacheLastModifiedFactor: 用来从回应里 Last Modified 资讯算出 expire date。
计算方式是:
expire period (过期时距) = 最后更新后至今的时间间距 * CacheLastModifiedFactor

expire date = 目前时间 + expire period
不过无论如何,过期时间不能超过 CacheMaxExpire 的设定值。

现在。如果用squid对该服务器进行反向代理的话,就可以通过cache 实现web的加速了
既然使用了APACHE的缓存功能,为什么还要使用外接的cache或squid,有点搞不明白?

哪位高人给解释一下!
打开的这个模块只是让apache的web页面允许被缓存.如果不打开这项功能,你就是用squid也无法缓存住web页面.明白?
不错
如果外接了cache或squid服务器要求进行web加速的话,就需要在htttpd.conf里进行设置!

这是不是一个大前提!

如果我单纯的只是WEB服务器,安装的时候激活mod_cache的模块,是不是也可以加速对我网站的访问速度?


QUOTE:
原帖由 basketball610 于 2006-3-1 15:40 发表
打开的这个模块只是让apache的web页面允许被缓存.如果不打开这项功能,你就是用squid也无法缓存住web页面.明白?

不完全同意,外部cache不依赖于web服务器的设定来工作的。apache的cache 模块不会影响外部cache。唯一对外部cache有影响的是过期时间。

对于squid,因为没有用过,所以不是十分了解。


QUOTE:
原帖由 basketball610 于 2006-3-1 15:40 发表
打开的这个模块只是让apache的web页面允许被缓存.如果不打开这项功能,你就是用squid也无法缓存住web页面.明白?

还是不太明白,如果这样的话,APACHE的MOD_CACHE的功能也太局限了,Squid应该可以对任何WEB服务器缓存,不一定是必须安装了MOD_CACHE模块的APACHE。我用Squid对TOMCAT进行了缓存,效果也不错,现在就想是抛开Squid的这样的软件直接用APACHE的缓存功能,不知可否?
squid的缓存不需要,在apache上特殊设置。

apache的缓存在2.*版本已经分化成mod_proxy,和mod_cache
mod_cache又区分mem和disk两种
谢谢大家对我这篇文章的关照.关于squid与apache的关系,我新开了一篇讨论的帖子.欢迎大家积极去发表看法.
http://bbs.chinaunix.net/viewthread.php?tid=711657&extra=