如何使用Apache HTTP Server的緩存功能

如何使用Apache HTTP Server的緩存功能

apache http服務(wù)器提供了一系列緩存功能,旨在以各種方式提高服務(wù)器的性能。

三態(tài)RFC2616 HTTP緩存 ? ? ? ? ? ? ?( 推薦學(xué)習(xí):Apache服務(wù)器?)

mod_cache及其提供者模塊mod_cache_disk提供智能的HTTP感知緩存。內(nèi)容本身存儲在緩存中,mod_cache旨在遵守控制內(nèi)容可緩存性的所有各種HTTP頭和選項。

mod_cache針對簡單和復(fù)雜的緩存配置,可以在其中處理代理內(nèi)容,動態(tài)本地內(nèi)容,或者需要加速對可能較慢的磁盤上的本地文件的訪問。

雙狀態(tài)鍵/值共享對象緩存

共享對象緩存API(socache)及其提供程序模塊提供基于服務(wù)器范圍的鍵/值共享對象緩存。這些模塊旨在緩存低級別數(shù)據(jù),例如ssl會話和身份驗證憑據(jù)。

后端允許數(shù)據(jù)在服務(wù)器范圍內(nèi)存儲在共享內(nèi)存中,或者數(shù)據(jù)中心內(nèi)存儲在緩存中,例如memcache或distcache。

專門的文件緩存

mod_file_cache提供了在服務(wù)器啟動時將文件預(yù)加載到內(nèi)存中的功能,并且可以改善訪問時間并保存經(jīng)常訪問的文件上的文件句柄,因為不需要在每個請求上轉(zhuǎn)到磁盤。

三態(tài)RFC2616 HTTP緩存

HTTP協(xié)議包含對RFC2616第13節(jié)描述的內(nèi)聯(lián)緩存機制的內(nèi)置支持,mod_cache模塊可用于利用此功能。

與簡單的兩個狀態(tài)鍵/值緩存不同,其中內(nèi)容在不再新鮮時完全消失,HTTP緩存包括保留陳舊內(nèi)容的機制,并詢問源服務(wù)器此陳舊內(nèi)容是否已更改,如果不是則再次刷新。

HTTP緩存中的條目存在以下三種狀態(tài)之一:

Fresh

如果內(nèi)容足夠新(比其新鮮壽命更年輕),則認為是Fresh。HTTP緩存可以免費提供新內(nèi)容,而無需對源服務(wù)器進行任何調(diào)用。

Stale

如果內(nèi)容太舊(早于其新鮮度生命周期),則認為是Stale。HTTP緩存應(yīng)聯(lián)系原始服務(wù)器,并在向客戶端提供過時內(nèi)容之前檢查內(nèi)容是否仍然是新的。

如果原始服務(wù)器仍然無效,則原始服務(wù)器將使用替換內(nèi)容進行響應(yīng),或者理想情況下,源服務(wù)器將使用代碼進行響應(yīng)以告知緩存內(nèi)容仍然是新的,而無需再次生成或發(fā)送內(nèi)容。內(nèi)容再次變得新,循環(huán)繼續(xù)。

HTTP協(xié)議允許緩存在某些情況下提供過時數(shù)據(jù),例如當(dāng)嘗試使用源服務(wù)器刷新數(shù)據(jù)時出現(xiàn)5xx錯誤,或者另一個請求已經(jīng)在刷新給定條目的過程中。在這些情況下,會在響應(yīng)中添加警告標(biāo)頭。

Non Existent

如果緩存已滿,則保留從緩存中刪除內(nèi)容以騰出空間的選項。內(nèi)容可以隨時刪除,可以是舊或新。htcacheclean工具可以一次性運行,或者作為守護程序部署,以使緩存的大小保持在給定大小或給定數(shù)量的inode內(nèi)。在嘗試刪除新內(nèi)容之前,該工具會嘗試刪除舊內(nèi)容。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊15 分享