2014-01-28 16 views
4

我已經添加了緩存指令到我的httpd.conf文件,但無法找到如何驗證它的實際緩存頁面,併爲他們服務了。我怎樣才能驗證這一點?如何驗證Apache緩存正在工作?

我增加了緩存指令在服務器的配置水平(不使用虛擬主機)爲:

CacheEnable disk/
CacheRoot /var/cache 
CacheDefaultExpire 3600 

回答

3

您可以檢查,如果你的Apache是​​真的緩存的內容或不被確認以下要點。

  1. 檢查/ var/cache目錄的大小。它應該在一段時間後越來越大的大小的時候有打到你的Apache

  2. 您可以在日誌檢查中,應該響應代碼302,而不是200

如果符合這兩點則應該有工作mod_disk_cache模塊。

+1

謝謝。我看到一個空文件夾和'200'。我如何弄清楚什麼是錯的? –

+0

這是正確的嗎?檢查谷歌搜索,緩存頁面可以顯示爲代碼'200'。你有'302'代碼的來源嗎? –

+2

我認爲你的意思是304而不是302. 302是重定向。 – vsingh

0

請在下面設置的嘗試。

<IfModule mod_cache.c> 
LoadModule cache_disk_module /usr/lib/apache2/modules/mod_cache_disk.so 
<IfModule mod_disk_cache.c> 
CacheDefaultExpire 3600 
CacheEnable disk/
CacheRoot "/path/to/cache/folder/" 
CacheDirLevels 2 
CacheDirLength 1 
</IfModule> 
</IfModule> 
+0

我做過,並且apache用戶是其所有者的成員,並且具有讀寫訪問權限的組 –

+0

我希望您在httpd.conf文件中加載了以下兩個模塊。 「mod_disk_cache」「mod_cache」 –

+0

是的,兩者都被列爲加載到httpd.conf中的LoadModule –

0
CacheRoot "/var/cache/folder" 

檢查

/var/log/apache2/error.log

如果有任何權限錯誤,它不會在目錄中寫,給的Apache2權限該目錄像下面

mkdir -p /var/cache/folder/ 
chown root:www-data /var/cache/apache2/mod_cache_disk/ -R 
chmod 775 /var/cache/apache2/mod_cache_disk/ -R 

訪問頁爲您在文件夾中會出現的目錄結構將出現,並有兩個文件一個頭,另一個用於數據。如果它會顯示類似的數據緩存其他明智的配置缺了點什麼,我配置了這個工作,緩存的頁面也顯示出在我的情況

1

您只需編寫一個簡單的PHP頁面在日誌200點的狀態。如果刷新頁面,則右上角的時間不應再增長300秒。

<?php 
header("Cache-Control: must-revalidate, max-age=300"); 
header("Vary: Accept-Encoding"); 
echo time()."<br>"; 
?> 
1

304在日誌中並不意味着您的內容是從緩存中提供的。但是看看文件夾/ var/cache/mod_proxy,您可以看到內容和大小不斷增長。

在httpd.conf中添加此

SetEnv CACHE_MISS 1 
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{CACHE_MISS}e" combined 

現在我的日誌變化如下

之前

192.xx.xx.xx - - [29/Oct/2015:10:11:12 -0400] "GET /pathToResource/javascript/extjs/lib/extjs4/ext-all.js HTTP/1.1" 304 - "https://my-url" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36" 

後作爲上述

192.xx.xx.xx - - [29/Oct/2015:10:11:12 -0400] "GET /pathToResource/javascript/extjs/lib/extjs4/ext-all.js HTTP/1.1" 304 - "https://my-url" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36" 1 

注意事項1描述的變化結束。如果你在瀏覽器中做F5 下一次,你應該看到被服務相同的資源會有不月底。

0

如果您將\"%{cache-status}e\"添加到您的LogFormat行中,它將顯示在您的訪問日誌文件中。

0

一個簡單的測試,以驗證一個工作緩存:

  • 請求的URL,例如curl "http://mydomain/my/page&test_param"
  • 檢查HTTP狀態代碼是200,203,300,301或410(只有那些被緩存起來,見https://httpd.apache.org/docs/2.4/caching.html
  • 檢查高速緩存與htcacheclean,例如htcacheclean -p /var/cache -A|grep 'test_param'