如何验证Apache缓存是否有效?

时间:2014-01-28 18:18:08

标签: apache caching apache2 httpd.conf

我已将缓存指令添加到我的httpd.conf文件中,但无法发现如何验证它实际缓存页面并提供它们。我该如何验证?

我在服务器配置级别(不使用VirtualHost)添加了缓存指令:

CacheEnable disk /
CacheRoot /var/cache
CacheDefaultExpire 3600

7 个答案:

答案 0 :(得分:6)

您可以通过确认以下几点来检查您的apache是​​否真正缓存了内容。

  1. 检查/ var / cache目录的大小。在你的apache被击中一段时间​​之后,它的大小应该会增长

  2. 您可以签入日志,应该回复代码302而不是200.

  3. 如果你匹配这两个点,那么应该有工作的mod_disk_cache模块。

答案 1 :(得分:2)

你可以简单地写一个快速的php页面。如果刷新页面,右上角的时间不应再增加300秒。

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

答案 2 :(得分:2)

如果您将 SELECT extractvalue(column_value, '/row/id') "id",extractvalue(column_value, '/row/name') "name" FROM( TABLE(XMLSequence(XMLTYPE('<root><row><id>id1</id><name>mm</name> </row></root>').extract('/root/row'))))T ; 添加到LogFormat行,它将显示在您的访问日志文件中。

答案 3 :(得分: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,您应该会看到所投放的资源相同,并且最后不会有 1

答案 4 :(得分: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>

答案 5 :(得分: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

访问页面检入文件夹将出现目录结构,并且有两个文件用于标题,另一个用于数据。如果它会显示数据缓存其他明智配置缺少的东西,我配置这是工作,缓存页面也在我的情况下显示200状态

答案 6 :(得分:0)

验证工作缓存的简单测试:

  • 申请网址,例如setDevice
  • 检查HTTP状态代码是否为200,203,300,301或410(仅限缓存,请参阅https://httpd.apache.org/docs/2.4/caching.html
  • 使用htcacheclean检查缓存,例如curl "http://mydomain/my/page?test_param"