快捷搜索:   nginx

Apache Cache编译安装以及详细介绍

apache编译的时候没有启用cache功能,默认情况下,apache完以后,是不允许被cache的。访问量大增,需要cache功能,重新编译:

[-]#/usr/local/apache2/bin/apxs -cia mod_cache.c cache_util.c cache_cache.c cache_storage.c cache_pqueue.c cache_hash.c

和mod_disk_cache.c

mod_mem_cache.c

会在/usr/local/apache2/modules下自动生成mod_cache.so,mod_disk_cache.so和mod_mem_cache.so

httpd.conf配置以及详解如下

LoadModule cache_module modules/mod_cache.so

LoadModule disk_cache_module modules/mod_disk_cache.so

LoadModule mem_cache_module modules/mod_mem_cache.so

<IfModule mod_cache.c>

CacheForceCompletion 100

CacheDefaultEXPire 3600

CacheMaxExpire 86400

CacheLastModifiedFactor 0.1

<IfModule mod_disk_cache.c>

CacheEnable disk /

CacheRoot “/var/cache/mod_proxy”

CacheSize 327680

CacheDirLength 4

CacheDirLevels 5

CacheGcInterval 4

</IfModule>

<IfModule mod_mem_cache.c>

CacheEnable mem /

MCacheSize 8192

MCacheMaxObjectCount 10000

MCacheMinObjectSize 1

MCacheMaxObjectSize 51200

</IfModule>

</IfModule>

####################################################

参考数据

mod_cache:

CacheEnable: 启动 mod_cache,其后接两个参数。第一个参数指定快取的种类,应设为 mem (内存快取) 或 disk (磁盘高速缓存) 之其一;第二个参数指定使用快取的 URI 路径,如果对整个网XP (或虚拟主机) 进行快取,简单指定为根目录(/) 即可。

CacheForceCompletion: 这个值指定当 HTTP request 被取消时,内容的产生动作要完成的百分比;预设是 60(%)。

CacheDefaultExpire: 指定快取的预设过期秒数;默认值是一小时 (3600)。

CacheMaxExpire: 指定快取最大的过期秒数;默认值是一天 (86400)。

CacheLastModifiedFactor: 用来从响应里 Last Modified 信息算出 expir date。计算方式是:expire period (过期时距) = 最后更新后至今的时间间距 *CacheLastModifiedFactor而expire date = 目前时间 + expire period不过无论如何,过期时间不能超过 CacheMaxExpire 的设定值。

mod_disk_cache:

CacheRoot: 指定磁盘高速缓存所使用的目录。

CacheSize: 以 KByte 为单位指定快取使用的磁盘空间大小。

CacheDirLength: 指定各目录 (的键值) 存在于快取阶层 (hierarchy) 中所使用的字符数。

CacheDirLevels: 指定快取的目录层数; CacheDirLength 与此 CacheDirLevels设定值相乘不能超过 20。

CacheGcInterval: 指定收垃圾 (Garbage Collection) 的动作间隔时间;单位是小时。不过根据 Apache2 文件,这个指令还 没有被实作 。

mod_mem_cache:

MCacheSize: 以 KByte 为单位指定快取使用的内存空间大小。

MCacheMaxObjectCount: 指定快取对象数目的最大值;默认值是 1009。

MCacheMaxObjectSize: 指定最大可快取对象的大小,单位是 Byte;默认值是10000 (Bytes)。

MCacheMinObjectSize: 指定最小可快取对象的大小,单位是 Byte;默认值是 0 (Bytes)。

配apache mod_cache 后 httpd -k start

apache出现以下信息:

Cannot load /usr/local/apache/modules/mod_cache.so into server: /usr/local/apache/modules/mod_cache.so: undefined symbol: cache_generate_key_default

正规解决方案:

modules/cache下面有很多的.c文件,大致用途如:
mod_cache.c 编译得到mod_cache.so 主要用来控制整个apache的cache功能。
mod_file_cache.c,mod_mem_cache.c,mod_disk_cache.c这个三个文件编译后得到各自的cache支持模块。

mod_cache.c还需要其他的程序来进行工作,包括cache_*.c这些文件。因此apxs动态加载一个模块的时候,需要把这些文件和mod_cache.c 一起编译:/usr/local/apache2/bin/apxs -cia mod_cache.c cache_util.c cache_cache.c cache_storage.c cache_pqueue.c cache_hash.c

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论