溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

apache系列(服務器緩存)

發(fā)布時間:2020-06-03 19:30:01 來源:網絡 閱讀:487 作者:csboyty 欄目:建站服務器

開起mod_cache

基于硬盤文件的緩存
基于硬盤文件存儲的緩存由 mod_disk_cache 模塊實現,先看個簡單的配置例子:

<IfModule mod_cache.c>

CacheDefaultExpire 86400<IfModule mod_disk_cache.c>
CacheEnable disk /
CacheRoot /tmp/apacheCache
CacheDirLevels 5CacheDirLength 5CacheMaxFileSize 1048576CacheMinFileSize 10</IfModule>

</IfModule>

把上面的配置加到 Apache 的 httpd.conf 文件中,如果緩存相關的模塊都已經編譯進了 Apache 的核心,則無需加載模塊,直接就能使用上面的指令。指令的詳細說明如下:

CacheDefaultExpire:設定緩存過期的時間(秒),默認是1小時,只有當緩存的文檔沒有設置過期時間或最后修改時間時這個指令才會生效
CacheEnable:啟用緩存,第1個參數是緩存類弄,這里當然是 disk了,第2個參數是緩存路徑,指的是 url 路徑,這里是緩存所有的東西,直接寫上“/”即可,如“/docs”則只緩存 /docs 下的所有文件
CacheRoot:緩存文件所在的目錄,運行 Apache 的用戶(如daemon 或 nobody)要能對其進行讀寫,如果不清楚的話可以直接設置成 777,請手動建立該目錄并設置好訪問權限
CacheDirLevels:緩存目錄的深度,默認是3,這里設置為5
CacheDirLength:緩存目錄名的字符長度,默認是4,這里設置為5
CacheMaxFileSize 和 CacheMaxFileSize:緩存文件的最大值和最小值(byte),當超過這個范圍時將不再緩存,這里設置為 1M 和 10bytes
基于硬盤文件存儲的文件基本上就這些內容,設置好后重啟 Apache 應該就能使用了。一切正常的話,可以在緩存目錄下看到 Apache 自動建立的一些目錄和緩存的數據文件。

基于內存的緩存
基于內存的緩存主要由 mod_mem_cache 模塊實現,還是看個簡單的配置吧,這樣比較直觀:-)

<IfModule mod_cache.c>

<IfModule mod_mem_cache.c>
    CacheEnable mem /
    MCacheMaxObjectCount 20000
    MCacheMaxObjectSize 1048576
    MCacheMaxStreamingBuffer 65536
    MCacheMinObjectSize 10
    MCacheRemovalAlgorithm GDSF
    MCacheSize 131072</IfModule>

</IfModule>

簡單說一下上面一些指令的意思:

CacheEnable:啟用緩存,使用基于內存的方式存儲
MCacheMaxObjectCount:在內存中最多能存儲緩存對象的個數,默認是1009,這里設置為20000
MCacheMaxObjectSize:單個緩存對象最大為 1M,默認是10000bytes
MCacheMaxStreamingBuffer:在緩沖區(qū)最多能夠放置多少的將要被緩存對象的尺寸,這里設置為 65536,該值通常小于100000或 MCacheMaxObjectSize 設置的值
MCacheMinObjectSize:單個緩存對象最小為10bytes,默認為1bytes
MCacheRemovalAlgorithm:清除緩存所使用的算法,默認是 GDSF,還有一個是LRU,可以查一下 Apache 的官方文檔,上面有些介紹
MCacheSize:緩存數據最多能使用的內存,單位是 kb,默認是100kb,這里設置為128M
保存重啟 Apache 基于內存的緩存系統應該就能生效了,根據需要可以使基于內存的存儲或硬盤文件的存儲方式一起使用,只要指明不同的URL路徑即可。

注意事項
使用緩存需要注意如下事項:

要使用緩存,必須使用指令 CacheEnable 啟用它,目前可用的緩存類型為 disk 或 mem,禁止緩存可以使用 CacheDisable,如 CacheDisable /private
待緩存的 URL 返回的狀態(tài)值必須為: 200、203、300、301 或 410
URL 的請求方式必須是 GET 方式
發(fā)送請求時,頭部中包含 “Authorization: ”的字符串時,返回的內容將不會被緩存
URL 包含查詢字符串,如問號?后的那些東西,除非返回的內容包含“Expires:”,否則不會被緩存
如果返回的狀態(tài)值是 200,則返回的頭部信息必須包含以下的一種才會被緩存:Etag、Last-Modified、Expires,除非設置了指令 CacheIgnoreNoLastMod On
如果返回內容的頭部信息“Cache-Control:”中包含“private”,除非設置了指令 CacheStorePrivate On,否則不會被緩存
如果返回內容的頭部信息“Cache-Control:”中包含“no-sotre”,除非設置了指令 CacheStoreNoStore On,否則不會被緩存
如果返回內容的頭部信息“Vary:”中包含了“*”,不會被緩存


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI