<-
Apache > HTTP 伺服器 > 文件 > 版本 2.4 > 模組

Apache 模組 mod_cache

可用語言: en  |  fr  |  ja  |  ko 

說明符合 RFC 2616 的 HTTP 快取過濾器。
狀態擴充功能
模組識別碼cache_module
原始碼檔案mod_cache.c

摘要

使用此模組時應謹慎,因為當 CacheQuickHandler 指令處於其預設值 on 時,將會繞過 AllowDeny 指令。您不應為任何您希望透過用戶端主機名稱、地址或環境變數限制訪問的內容啟用快速處理程序快取。

mod_cache 實作了一個符合 RFC 2616HTTP 內容快取過濾器,並支援快取包含 Vary 標頭的內容協商回應。

符合 RFC 2616 的快取提供了一種機制來驗證過時或過期的內容是否仍然新鮮,並且當原始伺服器透過遵循 If-None-Match HTTP 請求標頭來支援 條件式請求 時,可以顯著提升效能。只有當內容發生變化時才會從頭開始重新產生內容,而不是在快取項目過期時。

作為一個過濾器,mod_cache 可以放置在來自任何處理程序的內容之前,包括 平面檔案(從慢速磁碟提供服務並快取在快速磁碟上)、CGI 腳本動態內容產生器 的輸出,或從 另一個伺服器代理 的內容。

在預設配置中,mod_cache 會將快取過濾器盡可能地插入過濾器堆疊的前端,並利用 快速處理程序 繞過所有每個請求處理,以便將內容返回給用戶端。在此操作模式下,mod_cache 可以被視為固定在 Web 伺服器前端的快取代理伺服器,同時在 Web 伺服器本身內部運行。

當使用 CacheQuickHandler 指令關閉快速處理程序時,就可以將 CACHE 過濾器插入管理員選擇的過濾器堆疊中的某個位置。這提供了在內容被 mod_include 過濾器個性化之前或可選擇地被 mod_deflate 過濾器壓縮之前快取內容的機會。

在正常操作下,mod_cache 將響應並可以由用戶端在請求中發送的或伺服器在回應中發送的 Cache-ControlPragma 標頭控制。在特殊情況下,可以將 mod_cache 配置為覆蓋這些標頭並強制執行特定網站的行為,但是這種行為將僅限於此快取,並且不會影響用戶端和伺服器之間可能存在的其他快取的操作,因此除非絕對必要,否則不建議這樣做。

RFC 2616 允許快取在從原始伺服器刷新現有過時項目的同時返回過時數據,並且當 CacheLock 指令配置適當時,mod_cache 支援此功能。此類回應將包含帶有 110 回應代碼的 Warning HTTP 標頭。RFC 2616 還允許快取在嘗試刷新過時數據返回錯誤 500 或更高版本時返回過時數據,並且 mod_cache 預設支援此行為。此類回應將包含帶有 111 回應代碼的 Warning HTTP 標頭。

mod_cache 需要一個或多個儲存管理模組的服務。以下儲存管理模組包含在 Apache 的基本發行版中

mod_cache_disk
實作基於磁碟的儲存管理器。標頭和主體分別儲存在磁碟上,其目錄結構源自快取 URL 的 md5 雜湊。可以同時儲存多個內容協商回應,但是此模組不支援部分內容的快取。htcacheclean 工具用於列出快取的 URL、刪除快取的 URL 或將磁碟快取的大小保持在大小和 inode 限制內。
mod_cache_socache
實作基於共享物件快取的儲存管理器。標頭和主體一起儲存在基於快取回應 URL 的單個鍵下。可以同時儲存多個內容協商回應,但是此模組不支援部分內容的快取。

更多詳細資訊、討論和範例,請參閱 快取指南

Support Apache!

主題

指令

錯誤修復檢查表

另請參閱

top

相關模組和指令

top

範例配置

httpd.conf 範例

#
# Sample Cache Configuration
#
LoadModule cache_module modules/mod_cache.so
<IfModule mod_cache.c>
    LoadModule cache_disk_module modules/mod_cache_disk.so
    <IfModule mod_cache_disk.c>
        CacheRoot "c:/cacheroot"
        CacheEnable disk  "/"
        CacheDirLevels 5
        CacheDirLength 3
    </IfModule>

    # When acting as a proxy, don't cache the list of security updates
    CacheDisable "http://security.update.server/update-list/"
</IfModule>
top

避免驚群效應

當快取項目過期時,mod_cache 將向後端提交一個條件式請求,預期後端會確認快取項目是否仍然新鮮,如果不是,則發送更新的實體。

在快取實體過期與過期實體完全刷新之間存在一小段但有限的時間。在繁忙的伺服器上,在此期間可能會收到大量的請求,並導致大量的請求突然且不可預測地襲擊後端,造成 驚群效應

為了控制驚群效應,可以使用 CacheLock 指令定義一個目錄,在該目錄中為 正在處理中 的 URL 建立鎖定。鎖定被其他請求用作 提示,以抑制嘗試快取(其他人已去擷取實體),或指示正在刷新過時的項目(同時將返回過時的內容)。

項目的初始快取

首次快取實體時,將為該實體建立一個鎖定,直到回應完全快取為止。在鎖定的生命週期內,快取將抑制第二次及後續嘗試快取相同實體的操作。雖然這並不能阻止驚群效應,但它確實可以阻止快取嘗試同時多次快取相同的實體。

刷新過時的項目

當實體達到其新鮮度生命週期並過期時,將為該實體建立一個鎖定,直到回應被確認仍然新鮮或被後端替換為止。在鎖定的生命週期內,第二個及後續的請求將導致返回過時的數據,並且驚群效應得到控制。

鎖定和 Cache-Control: no-cache

鎖定僅用作 提示 以使快取對後端伺服器更溫和,但是如果需要,可以覆蓋鎖定。如果用戶端發送的請求帶有強制重新載入的 Cache-Control 標頭,則將忽略任何可能存在的鎖定,並且將立即滿足用戶端的請求並刷新快取項目。

作為進一步的安全機制,鎖定具有可配置的最大生存期。一旦達到此生存期,鎖定就會被刪除,並且新請求有機會建立新的鎖定。可以使用 CacheLockMaxAge 指令設定此最大生存期,預設值為 5 秒。

範例配置

啟用快取鎖定

#
# Enable the cache lock
#
<IfModule mod_cache.c>
    CacheLock on
    CacheLockPath "/tmp/mod_cache-lock"
    CacheLockMaxAge 5
</IfModule>
top

使用 CACHE 過濾器進行精細控制

在預設的快取操作模式下,快取作為快速處理程序運行,可以縮短大部分伺服器處理時間,並提供最高的快取效能。

在此模式下,快取 固定在 伺服器的前端,就像在伺服器前面放置了一個獨立的 RFC 2616 快取代理一樣。

雖然此模式提供了最佳效能,但管理員可能會發現,在某些情況下,他們可能希望在快取請求後對請求執行進一步處理,例如將個性化注入到快取頁面中,或對內容應用授權限制。在這些情況下,管理員通常被迫在快取伺服器的後面或前面放置獨立的反向代理伺服器來實現此目的。

為了解決這個問題,可以將 CacheQuickHandler 指令設定為 off,伺服器將會處理非快取請求通常處理的所有階段,包括 身份驗證和授權 階段。

此外,管理員可以選擇透過將 CACHE 過濾器添加到輸出過濾器鏈中來指定 過濾器鏈中進行快取的精確位置

例如,若要在壓縮回應之前快取內容,請將 CACHE 篩選器放置在 DEFLATE 篩選器之前,如下例所示

# Cache content before optional compression
CacheQuickHandler off
AddOutputFilterByType CACHE;DEFLATE text/plain

另一種選擇是在 mod_include(或其他內容處理篩選器)套用個人化之前快取內容。在此範例中,包含 mod_include 可理解標籤的範本會在剖析之前快取

# Cache content before mod_include and mod_deflate
CacheQuickHandler off
AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html

您可以將 CACHE 篩選器放置在篩選鏈中的任何位置。在此範例中,內容在由 mod_include 剖析後,但在由 mod_deflate 處理之前快取

# Cache content between mod_include and mod_deflate
CacheQuickHandler off
AddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html

警告

如果由於任何原因更改了篩選鏈中 CACHE 篩選器的位置,您可能需要**清除快取**以確保所提供資料保持一致。 mod_cache 無法為您強制執行此操作。
top

快取狀態和記錄

一旦 mod_cache 決定是否要從快取提供實體,就會將決定的詳細原因寫入請求中子進程環境的 cache-status 鍵下。此原因可以由 LogFormat 指令記錄,如下所示

LogFormat "%{cache-status}e ..."

根據做出的快取決策,原因也會寫入子進程環境中以下四個鍵之一,視情況而定

cache-hit
回應已從快取提供。
cache-revalidate
回應已過期,並已成功重新驗證,然後從快取提供。
cache-miss
回應已從上游伺服器提供。
cache-invalidate
快取的實體已由 GET 或 HEAD 以外的請求方法失效。

這使得可以支援根據以下範例對快取請求進行條件記錄

CustomLog "cached-requests.log" common env=cache-hit
CustomLog "uncached-requests.log" common env=cache-miss
CustomLog "revalidated-requests.log" common env=cache-revalidate
CustomLog "invalidated-requests.log" common env=cache-invalidate

對於模組作者,可以使用名為 cache_status 的鉤子,允許模組以自定義方式回應上述快取結果。

top

CacheDefaultExpire 指令

說明未指定到期日期時快取文件的預設持續時間。
語法CacheDefaultExpire 秒數
預設值CacheDefaultExpire 3600(一小時)
上下文伺服器設定、虛擬主機、目錄、.htaccess
狀態擴充功能
模組mod_cache

CacheDefaultExpire 指令指定一個預設時間(以秒為單位),如果文件未提供到期日期或上次修改日期,則快取該文件。 CacheMaxExpire 指令指定的數值*不會*覆蓋此設定。

CacheDefaultExpire 86400
top

CacheDetailHeader 指令

說明將 X-Cache-Detail 標頭新增至回應。
語法CacheDetailHeader 開啟|關閉
預設值CacheDetailHeader 關閉
上下文伺服器設定、虛擬主機、目錄、.htaccess
狀態擴充功能
模組mod_cache
相容性適用於 Apache 2.3.9 及更高版本

CacheDetailHeader 指令開啟時,會將 X-Cache-Detail 標頭新增至回應,其中包含特定快取決策的詳細原因。

在快取 RESTful 服務的開發過程中,將有關快取決策的其他資訊寫入回應標頭可能很有用,以便確認服務和用戶端是否已正確使用 Cache-Control 和其他標頭。

如果使用一般處理程式,則此指令可能會出現在 <Directory><Location> 指令中。如果使用快速處理程式,則此指令必須出現在伺服器或虛擬主機上下文中,否則該設定將被忽略。

# Enable the X-Cache-Detail header
CacheDetailHeader on

X-Cache-Detail: "conditional cache hit: entity refreshed" from localhost

top

CacheDisable 指令

說明停用指定 URL 的快取
語法CacheDisable url-string | 開啟
上下文伺服器設定、虛擬主機、目錄、.htaccess
狀態擴充功能
模組mod_cache

CacheDisable 指令指示 mod_cache *不要*快取 url-string 或其下層的 URL。

範例

CacheDisable "/local_files"

如果在 <Location> 指令中使用,則需要在 Location 下方指定路徑,或者如果使用「開啟」一詞,則會停用整個位置的快取。

範例

<Location "/foo">
    CacheDisable on
</Location>

可以設定 no-cache 環境變數,以在 2.2.12 及更高版本中停用更細粒度資源集的快取。

另請參閱

top

CacheEnable 指令

說明使用指定的儲存管理器啟用指定 URL 的快取
語法CacheEnable cache_type [url-string]
上下文伺服器設定、虛擬主機、目錄
狀態擴充功能
模組mod_cache
相容性在 2.2 及更早版本中套用於正向代理內容的 '/' url 字串。

CacheEnable 指令指示 mod_cache 快取 url-string 或其下層的 URL。快取儲存管理器由 cache_type 參數指定。 CacheEnable 指令也可以放在 <Location><LocationMatch> 區段內,以指示內容可快取。 cache_type disk 指示 mod_cache 使用由 mod_cache_disk 實作的基於磁碟的儲存管理器。 cache_type socache 指示 mod_cache 使用由 mod_cache_socache 實作的基於共享物件快取的儲存管理器。

如果不同 CacheEnable 指令之間的 URL 空間重疊(如下例所示),則將執行每個可能的儲存管理器,直到第一個實際處理請求的儲存管理器為止。儲存管理器執行的順序由設定檔中 CacheEnable 指令的順序決定。 <Location><LocationMatch> 區段中的 CacheEnable 指令會在全域定義的 CacheEnable 指令之前處理。

當充當正向代理伺服器時, url-string 必須至少以應啟用快取的協定開頭。

# Cache content (normal handler only)
CacheQuickHandler off
<Location "/foo">
    CacheEnable disk
</Location>

# Cache regex (normal handler only)
CacheQuickHandler off
<LocationMatch "foo$">
    CacheEnable disk
</LocationMatch>

# Cache all but forward proxy url's (normal or quick handler)
CacheEnable  disk  /

# Cache FTP-proxied url's (normal or quick handler)
CacheEnable  disk  ftp://

# Cache forward proxy content from www.example.org (normal or quick handler)
CacheEnable  disk  http://www.example.org/

"*" 開頭的主機名稱與具有該後綴的所有主機名稱匹配。以 "." 開頭的主機名稱與包含後面網域組成部分的所有主機名稱匹配。

# Match www.example.org, and fooexample.org
CacheEnable  disk  "http://*example.org/"
# Match www.example.org, but not fooexample.org
CacheEnable  disk  "http://.example.org/"

可以設定 no-cache 環境變數,以在 2.2.12 及更高版本中停用更細粒度資源集的快取。

另請參閱

top

CacheHeader 指令

說明將 X-Cache 標頭新增至回應。
語法CacheHeader 開啟|關閉
預設值CacheHeader 關閉
上下文伺服器設定、虛擬主機、目錄、.htaccess
狀態擴充功能
模組mod_cache
相容性適用於 Apache 2.3.9 及更高版本

CacheHeader 指令開啟時,會將 X-Cache 標頭新增至回應,其中包含此回應的快取狀態。如果使用一般處理程式,則此指令可能會出現在 <Directory><Location> 指令中。如果使用快速處理程式,則此指令必須出現在伺服器或虛擬主機上下文中,否則該設定將被忽略。

HIT
實體是新的,並已從快取提供。
REVALIDATE
實體已過期,已成功重新驗證,並已從快取提供。
MISS
實體是從上游伺服器擷取的,並且未從快取提供。
# Enable the X-Cache header
CacheHeader on
X-Cache: HIT from localhost
top

CacheIgnoreCacheControl 指令

說明忽略不要將快取內容提供給用戶端的請求
語法CacheIgnoreCacheControl 開啟|關閉
預設值CacheIgnoreCacheControl 關閉
上下文伺服器設定、虛擬主機
狀態擴充功能
模組mod_cache

通常,包含 Cache-Control: no-cache 或 Pragma: no-cache 標頭值的請求將不會從快取提供。 CacheIgnoreCacheControl 指令允許覆蓋此行為。 CacheIgnoreCacheControl 開啟 告訴伺服器即使請求包含 no-cache 標頭值也嘗試從快取提供資源。需要授權的資源將*永遠不會*被快取。

CacheIgnoreCacheControl On

警告

即使用戶端已請求不要從快取提供文件,此指令也允許從快取提供。這可能會導致提供過期的內容。

另請參閱

top

CacheIgnoreHeaders 指令

說明不要在快取中儲存指定的 HTTP 標頭。
語法CacheIgnoreHeaders header-string [header-string] ...
預設值CacheIgnoreHeaders 無
上下文伺服器設定、虛擬主機
狀態擴充功能
模組mod_cache

根據 RFC 2616,逐跳 HTTP 標頭不會儲存在快取中。以下 HTTP 標頭是逐跳標頭,因此*在任何情況下*都不會儲存在快取中,無論 CacheIgnoreHeaders 的設定如何

CacheIgnoreHeaders 指定不應儲存在快取中的其他 HTTP 標頭。例如,在某些情況下,防止 Cookie 儲存在快取中是有意義的。

CacheIgnoreHeaders 採用以空格分隔的不應儲存在快取中的 HTTP 標頭列表。如果只有逐跳標頭不應儲存在快取中(符合 RFC 2616 的行為),則可以將 CacheIgnoreHeaders 設定為

範例 1

CacheIgnoreHeaders Set-Cookie

範例 2

CacheIgnoreHeaders None

警告

如果像 Expires 這樣正確快取管理所需的標頭由於 CacheIgnoreHeaders 設定而未儲存,則 mod_cache 的行為未定義。
top

CacheIgnoreNoLastMod 指令

說明忽略回應沒有 Last Modified 標頭的事實。
語法CacheIgnoreNoLastMod 開啟|關閉
預設值CacheIgnoreNoLastMod 關閉
上下文伺服器設定、虛擬主機、目錄、.htaccess
狀態擴充功能
模組mod_cache

通常,沒有上次修改日期的文件不會被快取。在某些情況下,上次修改日期會被移除(例如在 mod_include 處理期間)或根本不提供。 CacheIgnoreNoLastMod 指令提供了一種方法來指定即使沒有上次修改日期,也應考慮快取沒有上次修改日期的文件。如果文件未提供上次修改日期和到期日期,則將使用 CacheDefaultExpire 指令指定的數值來產生到期日期。

CacheIgnoreNoLastMod On
top

CacheIgnoreQueryString 指令

說明快取時忽略查詢字串
語法CacheIgnoreQueryString 開啟|關閉
預設值CacheIgnoreQueryString 關閉
上下文伺服器設定、虛擬主機
狀態擴充功能
模組mod_cache

通常,帶有查詢字串參數的請求會針對每個唯一的查詢字串單獨快取。這根據 RFC 2616/13.9 僅在指定到期時間時才會執行。 CacheIgnoreQueryString 指令告訴快取即使未指定到期時間也快取請求,即使查詢字串不同也回覆快取的回覆。從快取的角度來看,啟用此指令時,請求會被視為沒有查詢字串。

CacheIgnoreQueryString On
top

CacheIgnoreURLSessionIdentifiers 指令

說明快取時忽略 URL 中編碼的已定義工作階段識別碼
語法CacheIgnoreURLSessionIdentifiers 識別碼 [識別碼] ...
預設值CacheIgnoreURLSessionIdentifiers None
上下文伺服器設定、虛擬主機
狀態擴充功能
模組mod_cache

有時應用程式會將工作階段識別碼編碼到 URL 中,如下列範例所示

這會導致可快取的資源會針對每個工作階段分別儲存,這通常不是我們想要的。 CacheIgnoreURLSessionIdentifiers 允許定義一個要從用於識別快取中實體的鍵值中移除的識別碼清單,這樣可快取的資源就不會針對每個工作階段分別儲存。

CacheIgnoreURLSessionIdentifiers None 會清除忽略識別碼的清單。否則,每個識別碼都會被新增到清單中。

範例 1

CacheIgnoreURLSessionIdentifiers jsessionid

範例 2

CacheIgnoreURLSessionIdentifiers None
top

CacheKeyBaseURL 指令

說明覆寫反向代理快取鍵值的基底 URL。
語法CacheKeyBaseURL URL
上下文伺服器設定、虛擬主機
狀態擴充功能
模組mod_cache
相容性適用於 Apache 2.3.9 及更高版本

當指定 CacheKeyBaseURL 指令時,提供的 URL 將被用作基底 URL 來計算反向代理設定中快取鍵值的 URL。如果未指定,則會使用目前虛擬主機的配置、主機名稱和連接埠來建構快取鍵值。當存在機器叢集,並且所有快取項目都應快取在同一個快取鍵值下時,可以使用此指令指定新的基底 URL。

# Override the base URL of the cache key.
CacheKeyBaseURL "http://www.example.com/"
設定此指令時請小心。如果兩個不同的虛擬主機不小心被賦予相同的基底 URL,則一個虛擬主機的項目將會提供給另一個虛擬主機。
top

CacheLastModifiedFactor 指令

說明用於根據 LastModified 日期計算到期日期的因子。
語法CacheLastModifiedFactor 浮點數
預設值CacheLastModifiedFactor 0.1
上下文伺服器設定、虛擬主機、目錄、.htaccess
狀態擴充功能
模組mod_cache

如果文件沒有提供到期日期,但有提供上次修改日期,則可以根據上次修改文件以來的時間計算到期日期。 CacheLastModifiedFactor 指令指定一個 因子,用於根據以下公式產生此到期日期: 到期期限 = 自上次修改日期以來的時間 * 因子 到期日期 = 目前日期 + 到期期限 例如,如果文件在 10 小時前上次修改,且 因子 為 0.1,則到期期限將設定為 10*0.1 = 1 小時。如果目前時間為下午 3:00,則計算出的到期日期將為下午 3:00 + 1 小時 = 下午 4:00。如果到期期限會比 CacheMaxExpire 設定的期限長,則以後者為準。

CacheLastModifiedFactor 0.5
top

CacheLock 指令

說明啟用驚群鎖定。
語法CacheLock on|off
預設值CacheLock off
上下文伺服器設定、虛擬主機
狀態擴充功能
模組mod_cache
相容性適用於 Apache 2.2.15 及更高版本

CacheLock 指令會為指定的 URL 空間啟用驚群鎖定。

在最小配置中,以下指令是在預設系統暫存目錄中啟用驚群鎖定所需的全部指令。

# Enable cache lock
CacheLock on
top

CacheLockMaxAge 指令

說明設定快取鎖定的最大可能期限。
語法CacheLockMaxAge 整數
預設值CacheLockMaxAge 5
上下文伺服器設定、虛擬主機
狀態擴充功能
模組mod_cache

CacheLockMaxAge 指令指定任何快取鎖定的最大期限。

超過此秒數值的鎖定將會被忽略,並且下一個傳入的請求將有機會重新建立鎖定。此機制可防止速度較慢的用戶端花費過長時間來重新整理實體。

top

CacheLockPath 指令

說明設定鎖定路徑目錄。
語法CacheLockPath 目錄
預設值CacheLockPath /tmp/mod_cache-lock
上下文伺服器設定、虛擬主機
狀態擴充功能
模組mod_cache

CacheLockPath 指令允許您指定建立鎖定的目錄。預設情況下,會使用系統的暫存資料夾。鎖定是由僅適用於傳輸中的過時 URL 的空檔案組成,因此比傳統的磁碟快取佔用更少的資源。

top

CacheMaxExpire 指令

說明快取文件的最大時間(以秒為單位)
語法CacheMaxExpire 秒數
預設值CacheMaxExpire 86400(一天)
上下文伺服器設定、虛擬主機、目錄、.htaccess
狀態擴充功能
模組mod_cache

CacheMaxExpire 指令指定在不檢查原始伺服器的情況下保留可快取 HTTP 文件的最大秒數。因此,文件最多會在此秒數內過時。即使文件提供了到期日期,也會強制執行此最大值。

CacheMaxExpire 604800
top

CacheMinExpire 指令

說明快取文件的最小時間(以秒為單位)
語法CacheMinExpire 秒數
預設值CacheMinExpire 0
上下文伺服器設定、虛擬主機、目錄、.htaccess
狀態擴充功能
模組mod_cache

CacheMinExpire 指令指定在不檢查原始伺服器的情況下保留可快取 HTTP 文件的最小秒數。這僅在文件沒有提供有效的到期時間時才會使用。

CacheMinExpire 3600
top

CacheQuickHandler 指令

說明從快速處理常式執行快取。
語法CacheQuickHandler on|off
預設值CacheQuickHandler on
上下文伺服器設定、虛擬主機
狀態擴充功能
模組mod_cache
相容性Apache HTTP Server 2.3.3 及更高版本

CacheQuickHandler 指令控制處理快取的階段。

在預設啟用的配置中,快取會在快速處理常式階段中運作。此階段會縮短大部分伺服器處理的時間,並且代表典型伺服器最有效能的運作模式。快取會**鎖定**在伺服器的前端,並且會避免大部分的伺服器處理。

當停用時,快取會作為一般處理常式運作,並且在處理伺服器請求時會經歷完整的階段集。雖然此模式比預設模式慢,但它允許在需要完整處理的情況下使用快取,例如當內容需要授權時。

# Run cache as a normal handler
CacheQuickHandler off

當快速處理常式停用時,管理員也可以選擇在過濾器鏈中的精確位置執行快取,方法是將 **CACHE** 過濾器新增到鏈中。

# Cache content before mod_include and mod_deflate
CacheQuickHandler off
AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html

如果 CACHE 過濾器被指定多次,則會套用最後一個執行個體。

top

CacheStaleOnError 指令

說明提供過時內容來取代 5xx 回應。
語法CacheStaleOnError on|off
預設值CacheStaleOnError on
上下文伺服器設定、虛擬主機、目錄、.htaccess
狀態擴充功能
模組mod_cache
相容性適用於 Apache 2.3.9 及更高版本

CacheStaleOnError 指令開啟,並且快取中有可用的過時資料時,快取會透過傳回過時資料而不是 5xx 回應來回應後端的 5xx 回應。雖然會遵守用戶端傳送的 Cache-Control 標頭,並且會根據請求將原始 5xx 回應傳回給用戶端,但傳回給用戶端的 5xx 回應不會使快取中的內容失效。

# Serve stale data on error.
CacheStaleOnError on
top

CacheStoreExpired 指令

說明嘗試快取伺服器回報為已過期的回應
語法CacheStoreExpired On|Off
預設值CacheStoreExpired Off
上下文伺服器設定、虛擬主機、目錄、.htaccess
狀態擴充功能
模組mod_cache

自 httpd 2.2.4 起,已過期的回應不會儲存在快取中。 CacheStoreExpired 指令允許覆寫此行為。 CacheStoreExpired On 會告知伺服器嘗試快取資源,即使它已過時。後續的請求會觸發對原始伺服器的 If-Modified-Since 請求,如果後端資源沒有更改,則可能會從快取中完成回應。

CacheStoreExpired On
top

CacheStoreNoStore 指令

說明嘗試快取已標記為 no-store 的請求或回應。
語法CacheStoreNoStore On|Off
預設值CacheStoreNoStore Off
上下文伺服器設定、虛擬主機、目錄、.htaccess
狀態擴充功能
模組mod_cache

通常,具有 Cache-Control: no-store 標頭值的請求或回應不會儲存在快取中。 CacheStoreNoStore 指令允許覆寫此行為。 CacheStoreNoStore On 會告知伺服器嘗試快取資源,即使它包含 no-store 標頭值。需要授權的資源**永遠不會**被快取。

CacheStoreNoStore On

警告

如 RFC 2616 中所述,no-store 指令旨在「防止敏感資訊的意外洩露或保留(例如,在備份磁帶上)」。啟用此選項可能會將敏感資訊儲存在快取中。特此警告。

另請參閱

top

CacheStorePrivate 指令

說明嘗試快取伺服器已標記為私有的回應
語法CacheStorePrivate On|Off
預設值CacheStorePrivate Off
上下文伺服器設定、虛擬主機、目錄、.htaccess
狀態擴充功能
模組mod_cache

通常,具有 Cache-Control: private 標頭值的回應不會儲存在快取中。 CacheStorePrivate 指令允許覆寫此行為。 CacheStorePrivate On 會告知伺服器嘗試快取資源,即使它包含私有標頭值。需要授權的資源**永遠不會**被快取。

CacheStorePrivate On

警告

即使上游伺服器已請求不要快取資源,此指令仍允許快取。此指令僅適用於「私有」快取。

另請參閱

可用語言: en  |  fr  |  ja  |  ko 

top

評論

注意事項
這不是問答區。放置在此處的評論應針對改進文件或伺服器的建議,如果它們已被實施或被認為無效/離題,則可能會被我們的版主刪除。有關如何管理 Apache HTTP 伺服器的問題,應在 Libera.chat 上的 IRC 頻道 #httpd 中提出,或傳送到我們的 郵寄清單