当我们只有一台web前端或者服务器不够用的时候,但是我们又有比较多类似cms更新不平凡的页面和js,css,图片等静态元素的时候!我们是选择直接套squid还是使用后起的varish或者使用apache的mod_cache模块给我们提供的缓存功能呢!
前些天我尝试使用了apache的mod_cache模块,这个模块里面有mod_disk_cache(硬盘缓存),mod_mem_cache(内存缓存)。
Sample httpd.conf
#
# Sample Cache Configuration
#
LoadModule cache_module modules/mod_cache.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
CacheRoot c:/cacheroot
CacheSize 256
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
LoadModule mem_cache_module modules/mod_mem_cache.so
CacheEnable mem /
MCacheSize 4096
MCacheMaxObjectCount 100
MCacheMinObjectSize 1
MCacheMaxObjectSize 2048
配置的添加也是类似手册上的,只是稍作修改。
使用初期,感觉指令蛮多,功能也比较强大(当然和squid比还是欠缺)
CacheDefaultExpire 86400 (默认过期时间设置)
CacheDisable /local_files (不cacheURL在/ocal_files下的)
CacheEnable mem /manual (分内存cache,fd(文件描述符)cache,和硬盘cache)
CacheEnable fd /images
CacheEnable disk /
CacheForceCompletion 80 (2.0的文档里说还没哟实现的指令)
CacheIgnoreCacheControl On (忽略原始页面的对缓存控制的信息,eg.no-cache or no-store)
CacheIgnoreHeaders Set-Cookie
CacheIgnoreNoLastMod On
CacheLastModifiedFactor 0.5
CacheMaxExpire 604800
mod_disk_cache下面的指令
CacheDirLength 4
CacheDirLevels 5
CacheExpiryCheck Off (2.0.59还没有实现)
CacheGcClean 12 /daily_scripts (2.0.59还没有实现)
CacheGcDaily 23:59 (2.0.59还没有实现)
CacheGcInterval 24 (2.0.59还没有实现)
CacheGcMemUsage 16 (2.0.59还没有实现)
CacheGcUnused 12 /local_images (2.0.59还没有实现)
CacheMaxFileSize 64000
CacheMinFileSize 64
CacheRoot c:/cacheroot
CacheSize 5000000
CacheTimeMargin X (2.0.59还没有实现)
mod_mem_cache下面的指令
MCacheMaxObjectCount 13001
MCacheMaxObjectSize 6400000
MCacheMaxStreamingBuffer 65536
MCacheMinObjectSize 10000
MCacheRemovalAlgorithm GDSF
MCacheRemovalAlgorithm LRU
MCacheSize 700000
由于我使用的httpd是2.0.59版本的,所以很多功能都还没有实现,特别是硬盘缓存的时候,有些页面会莫名的白页,而且缓存空间的大小会一直增加下去,没有手册上讲的,当大于你所设置的cache大小后,会慢慢删除过期缓存的现象!但是内存缓存还是很好用的!
希望新版本的cache模块能更好用,至少在小部分范围内能更稳定,至少不出现白页!