Apache缓存的作用
Apahce服务器中所讲的缓存有两种,一种是基于内存的缓存、一种是基于硬盘的缓存。在这里我们要说的是基于硬盘的数据缓存技术。基于硬盘的缓存是指在apache服务器中,是指将客户端上一次请求所得到的信息,如网页的内容、图片等信息,保存在服务器的硬盘中(而不是内存上)。当客户端下次请求同一个信息时,即可将此内容立即响应给客户端。如此就可以大幅度的降低网页的响应时间,可以提供更高速的网络运用效率。由于硬盘往往,没有内存空间的限制,为此可以缓存更多的内容。
Apache设置基于硬盘缓存的步骤
1.配置mod_disk_cache模块
首先打开apache的配置文件/etc/httpd/conf/http.conf找到
CacheDefaultExpire: 设定缓存过期的时间(秒),默认是1小时,只有当缓存的文档没有设置过期时间或最后修改时间时这个指令才会生效。
CacheEnable:启用缓存,第1个参数是缓存类型,第2个参数是缓存路径,指的是 url 路径,这里是缓存所有的东西,直接写上“/”即可,如“/docs”则只缓存 /docs 下的所有文件。
CacheRoot:缓存文件所在的目录,运行 Apache 的用户(如apache、daemon 或 nobody)要能对其进行读写,如果不清楚的话可以直接设置成 777,请手动建立该目录并设置好访问权限。
在这里我们使用tmpfs这个虚拟内存来达到快速读取数据。(哈哈相当于基于内存的缓存)
CacheDirLevels:缓存目录的深度,默认是3。
CacheDirLength:缓存目录名的字符长度,默认是4。
CacheMaxFileSize 和 CacheMinFileSize :缓存文件的最大值和最小值(byte),当超过这个范围时将不再缓存,这里设置为 1M 和 1bytes。
2.配置mod_expires模块
在apache的配置文件中先确定有没有加载mod_expires这个模块
然后添加一下参数:
ExpiresDefault和ExpiresByType指令同样能够用易懂的语法格式进行定义:
ExpiresDefault "<base> [plus] {<num> <type>}*"
ExpiresByType type/encoding "<base> [plus] {<num> <type>}*"
其中<base>是下列之一:
· access
· now (等价于'access')
· modification
plus关键字是可选的。<num>必须是整数[可以被atoi()接受的],<type>是下列之一:
· years
· months
· weeks
· days
· hours
· minutes
· Seconds
3.配置mod_headers模块
配置mod_headers模块同样也应该先确定apache的配置文件有没有加载
然后在配置文件添加以下参数:
设置好了以后重启web服务器。然后访问web服务器。在查看/etc/shm/cacah下面有没有缓存文件,有的话就证明apache基于硬盘的缓存设置成功。