Apache 模組 mod_cache應用

來源:互聯網
上載者:User

 

mod_cache是apache中基於URI鍵的內容動態緩衝(記憶體或磁碟)

 

 

  從Apache2.2起,mod_cache和mod_file_cache將不再是實驗模組,它們已經足夠穩定,可以用於實際生產中了。這些緩衝體系提供了一個強有力的途徑來加速原始web伺服器(origin webserver)和Proxy 伺服器(proxy)的HTTP處理速度。

  mod_cache以及它的支援模組mod_mem_cache和mod_disk_cache提供了智能的HTTP緩衝。內容(content)本身被儲存在緩衝區中,mod_cache的目的在於管理控制內容緩衝能力的各種HTTP頭和選項。它可以同時處理本地的內容和代理的內容。mod_cache被設計為同時針對簡單的和複雜的緩衝配置,以用於處理代理的內容、動態本地內容、必須加速訪問的隨時間而改變本地檔案。

  另一方面,mod_file_cache實現了一個更基本的、但是在某些情況下更有效緩衝形式,它避免了主動確保URL緩衝能力所需的維護複雜性,mod_file_cache通過提供檔案控制代碼(file-handle)和記憶體映射(memory-mapping)的技巧來維持一個自Apache最後一次啟動以來的檔案緩衝區。同樣地,mod_file_cache的目標是改善不常修改的本地靜態檔案的訪問時間。

  由於mod_file_cache提供了一個相對簡單的緩衝實現,除了CacheFile和MMapStatic文檔的特定段落之外,這篇指南的說明覆蓋了mod_cache的緩衝體繫結構。

 

 

安裝編譯                                                                       

 

為了能夠在apache使用cache ,需要在安裝編譯時間加上如下參數。

--enable-cache  --enable-disk-cache --enable-mem-cache  --enable-file-cache

[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

兩種緩衝模式:

mod_disk_cache

  一個基於磁碟的儲存管理模組。

mod_mem_cache

  一個基於記憶體的儲存管理模組。mod_mem_cache可以被配置為兩種不同的操作模式:①緩衝開啟的檔案描述符;②在堆(heap)上緩衝對象。mod_mem_cache既可以用於緩衝本地產生的內容,也可以用於為反向 Proxy模式下的mod_proxy緩衝後端伺服器輸出的內容。

 

 

基於硬碟檔案的緩衝                                                                                             

 

基於硬碟檔案儲存體的緩衝由mod_disk_cache 模組實現:

<IfModule mod_cache.c>
CacheDefaultExpire 3600CacheMaxExpire 86400CacheLastModifiedFactor 0.1
<IfModule mod_disk_cache.c>CacheRoot /usr/local/apache/cacheCacheEnable disk /CacheDirLevels 5CacheDirLength 3CacheMaxFileSize 10000000CacheMinFileSize 1</IfModule>
</IfModule>

 

拷貝上面內容到apache 的 httpd.con檔案中:

在httpd.conf檔案中搜尋

#LoadModule cache_module modules/mod_cache.so  // 去掉前面的# 號

使用磁碟檔案快取:

#LoadModule disk_cache_module modules/mod_disk_cache.so  // 去掉前面的# 號

參數詳細含義如下

CacheDefaultExpire:

  設定緩衝到期的時間(秒),預設是1小時,只有當緩衝的文檔沒有設定到期時間或最後修改時間時這個指令才會生效

CacheMaxExpire:

  失效周期的最大值,緩衝實體的預設失效周期是一個小時(3600秒) ,這個預設值僅僅用在產生內容的原始資源沒有明確指定失效時間或最後修改時間的情況下。 

CacheLastModifiedFactor:

  在事件的檔案中不提供到期時間,指令指定的一個因素是用於產生到期日。例如,如果該檔案的最後修改10小時前, 係數為0.1,那麼到期期間將設定為10 * 0.1 = 1小時,如果目前時間是下午3:00,然後計算到期時間為3:00+1小時,也就是下午4:00  ,如果到期時間大於CacheMaxExpire 的時間,那麼後者優先順序高。

-----------------------------------------

CacheRoot:

  快取檔案所在的目錄,運行 Apache 的使用者(如daemon 或 nobody)要能對其進行讀寫,如果不清楚的話可以直接設定成 777,請手動建立該目錄並設定好存取權限

CacheEnable:

  啟用緩衝,第1個參數是緩衝類弄,這裡當然是 disk了,第2個參數是緩衝路徑,指的是 url 路徑,這裡是緩衝所有的東西,直接寫上“/”即可,如“/docs”則只緩衝 /docs 下的所有檔案

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 /MCacheSize 4096MCacheMaxObjectCount  2000MCacheMinObjectSize 1MCacheMaxObjectSize 2048</IfModule>
</IfModule>

 

 

安裝完成之後,需要搜尋

LoadModule cache_module modules/mod_cache.so  // 去掉前面的# 號

使用記憶體檔案快取:

#LoadModule mem_cache_module modules/mod_mem_cache.so  // 去掉前面的# 號

 

參數詳細含義如下:

CacheEnable:

  啟用緩衝,使用基於記憶體的方式儲存

MCacheSize:

  快取資料最多能使用的記憶體,單位是 kb,預設是100kb,這裡設定為128M

MCacheMaxObjectCount:

  在記憶體中最多能儲存緩衝對象的個數,預設是1009,這裡設定為20000

MCacheMinObjectSize:

  單個緩衝對象最小為10bytes,預設為1bytes

MCacheMaxObjectSize:

  單個緩衝對象最大為 1M,預設是10000bytes

 

儲存重啟 Apache 基於記憶體的緩衝系統應該就能生效了,根據需要可以使基於記憶體的儲存或硬碟檔案的儲存方式一起使用,只要指明不同的URL路徑即可。

 

-----------------------------------

           學到這裡,apache的內容就先告一段落了,後續學會習tomcat應用服務。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.