caching - Apache 反向缓存代理 - 为什么不缓存?

标签 caching apache2 reverse-proxy

我正在尝试为广告图形(GIF、JPEG、SWF)服务设置反向缓存代理。代理工作正常并将请求发送到源服务器,但我似乎无法弄清楚为什么内容没有被缓存。我当前的配置如下。目标是缓存所有与 /ca/ 匹配的请求URI 前缀。源服务器为文件提供干净的 URL,没有文件扩展名,缓存控制 max-age=1在源服务器 header 上设置周。

ProxyRequests Off
<Proxy *>
 Order deny,allow
 Allow from all
</Proxy>
<IfModule mod_disk_cache.c>
 CacheEnable disk /
 CacheRoot "/var/cache/mod_proxy"
 CacheDirLevels 3
 CacheDirLength 5
 CacheIgnoreCacheControl On 
</IfModule>

RewriteCond %{REQUEST_URI} ^/ca/*
RewriteRule ^/(.*)$ http://origin.webserver.com/$1 [P,L]
目前,我看到的唯一缓存是在代理服务器上访问的本地文件,我正在寻找我缺少的内容,以便从源服务器获取要缓存的内容。
我想知道它是否与mod_cache有关不缓存,因为内容是从源服务器获取的,而不是在磁盘上的某个位置。
我正在寻找一种方法来强制缓存与该前缀匹配的所有请求。
附言看起来我遇到了这个确切的问题:http://mail-archives.apache.org/mod_mbox/httpd-users/200901.mbox/%3C497F6ED3.7080606@gmail.com%3E .我将检查我的权限并查看调试消息......

最佳答案

添加这些指令似乎启动了缓存机制。我认为这与从源服务器发送的过期和缓存控制 header 有关,因为我使用 Symfony/PHP5 而不是直接从文件系统提供图像。


CacheEnable 磁盘/
CacheRoot "/var/cache/mod_proxy"
缓存目录级别 3
缓存目录长度 5
CacheIgnoreCacheControl 开启
缓存最大文件大小 100000000
CacheIgnoreNoLastMod 开启
CacheMaxExpire 1209600
CacheIgnoreQueryString 开启

关于caching - Apache 反向缓存代理 - 为什么不缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1008990/

相关文章:

javascript - 停止 http 请求,直到缓存准备就绪,无需轮询

apache2 - Symfony 3 Apache 500 内部服务器错误

apache2 - 收到错误 "You don' t 有权访问/在此服务器上。 Apache/2.2.22 (Ubuntu) 服务器在 localhost 端口 80

nginx - 配置Nginx进行路由

mysql db重负载和大量连接

python - 在 Python 中清除所有 lru_cache

php - 当 PHP APC 缓存完全填满时,如何防止 Apache 挂起?

nginx - 内容类型响应 header 是否必要?

c# - 套接字代理服务器

java - 哪个实现更好 : Cache based on WeakHashMap or cache based on ThreadLocal?