從Apache2.2起,mod_cache和mod_file_cache將不再是試驗(yàn)?zāi)K,它們已經(jīng)足夠穩(wěn)定,可以用于實(shí)際生產(chǎn)中了。這些緩沖體系提供了一個(gè)強(qiáng)有力的途徑來(lái)加速原始web服務(wù)器(origin webserver)和代理服務(wù)器(proxy)的HTTP處理速度。
mod_cache以及它的支持模塊mod_mem_cache和mod_disk_cache提供了智能的HTTP緩沖。內(nèi)容(content)本身被存儲(chǔ)在緩沖區(qū)中,mod_cache的目的在于管理控制內(nèi)容緩沖能力的各種HTTP頭和選項(xiàng)。它可以同時(shí)處理本地的內(nèi)容和代理的內(nèi)容。mod_cache被設(shè)計(jì)為同時(shí)針對(duì)簡(jiǎn)單的和復(fù)雜的緩沖配置,以用于處理代理的內(nèi)容、動(dòng)態(tài)的本地內(nèi)容、必須加速訪(fǎng)問(wèn)的隨時(shí)間而改變本地文件。
另一方面,mod_file_cache實(shí)現(xiàn)了一個(gè)更基本的、但是在某些情況下更有效的緩沖形式,它避免了主動(dòng)確保URL緩沖能力所需的維護(hù)復(fù)雜性,mod_file_cache通過(guò)提供文件句柄(file-handle)和內(nèi)存映射(memory-mapping)的技巧來(lái)維持一個(gè)自Apache最后一次啟動(dòng)以來(lái)的文件緩沖區(qū)。同樣地,mod_file_cache的目標(biāo)是改善不常修改的本地靜態(tài)文件的訪(fǎng)問(wèn)時(shí)間。
由于mod_file_cache提供了一個(gè)相對(duì)簡(jiǎn)單的緩沖實(shí)現(xiàn),除了CacheFile和MMapStatic文檔的特定段落之外,這篇指南的說(shuō)明覆蓋了mod_cache的緩存體系結(jié)構(gòu)。
安裝編譯
為了能夠在apache使用cache ,需要在安裝編譯時(shí)加上如下參數(shù)。
--enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache
復(fù)制代碼 代碼如下:
[root@localhost httpd-2.4.1]# ./configure --prefix=/usr/local/apache2worker --enable-so --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache
[root@localhost httpd-2.4.1]# make
[root@localhost httpd-2.4.1]# make install
兩種緩存模式:
1、mod_disk_cache
一個(gè)基于磁盤(pán)的存儲(chǔ)管理模塊。
2、mod_mem_cache
一個(gè)基于內(nèi)存的存儲(chǔ)管理模塊。mod_mem_cache可以被配置為兩種不同的操作模式:①緩存打開(kāi)的文件描述符;②在堆(heap)上緩存對(duì)象。mod_mem_cache既可以用于緩存本地生成的內(nèi)容,也可以用于為反向代理模式下的mod_proxy緩存后端服務(wù)器輸出的內(nèi)容。
基于硬盤(pán)文件的緩存
基于硬盤(pán)文件存儲(chǔ)的緩存由mod_disk_cache 模塊實(shí)現(xiàn):
復(fù)制代碼 代碼如下:
<IfModule mod_cache.c>
CacheDefaultExpire 3600
CacheMaxExpire 86400
CacheLastModifiedFactor 0.1
<IfModule mod_disk_cache.c>
CacheRoot /usr/local/apache/cache
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
CacheMaxFileSize 10000000
CacheMinFileSize 1
</IfModule>
</IfModule>
拷貝上面內(nèi)容到apache 的 httpd.con文件中:在httpd.conf文件中搜索
#LoadModule cache_module modules/mod_cache.so // 去掉前面的# 號(hào)
使用磁盤(pán)文件緩存:
#LoadModule disk_cache_module modules/mod_disk_cache.so // 去掉前面的# 號(hào)
參數(shù)詳細(xì)含義如下:
CacheDefaultExpire:
設(shè)定緩存過(guò)期的時(shí)間(秒),默認(rèn)是1小時(shí),只有當(dāng)緩存的文檔沒(méi)有設(shè)置過(guò)期時(shí)間或最后修改時(shí)間時(shí)這個(gè)指令才會(huì)生效
新聞熱點(diǎn)
疑難解答
圖片精選