如何在 Apache 2.4 中将 mod_cache 与 mod_proxy 结合使用

如何在 Apache 2.4 中将 mod_cache 与 mod_proxy 结合使用

问题在于让 Apache 2.4 缓存代理内容。

这个问题已解决 Apache 2.2 的问题(即使用 mod_mem_cache)。但在 Apache 2.4 中mod_mem_cache 已被删除

我的上游内容来源是http://10.1.1.123:8081/数据/它在 Apache 中的配置如下:

Alias /data /var/www/html/index.php

数据index.php的工作方式如下:

root@orac:/var/www/html# cat index.php
<?php

$expires = time() + 5;
$expires = gmdate( 'D, d M Y H:i:s', $expires ) . ' GMT';

header( 'Content-Type: text/html; charset=utf-8' );
header( "Expires: {$expires}" );

echo $expires;

即,自请求以来五秒后内容就会过期。

如果我直接访问/data(从我的网络浏览器),五秒缓存就会起作用。

在 Apache 中我的代理配置如下所示:

ProxyPass /cache/ http://10.1.1.123:8081/data/
ProxyPassReverse /cache/ http://10.1.1.123:8081/data/

我的缓存配置如下:

CacheEnable disk /
CacheRoot "/var/cache/mod_proxy"
CacheDirLevels 3
CacheDirLength 5
CacheIgnoreCacheControl On
CacheMaxFileSize 100000000
CacheIgnoreNoLastMod O

缓存存储可以通过 www-data 写入:

root@orac:/var/cache/mod_proxy# ls -al
total 8
drwxr-xr-x  2 www-data www-data 4096 Jun  5 13:41 .
drwxr-xr-x 19 root     root     4096 Jun  5 13:41 ..

有人能帮我解决这个问题吗?

相关内容