我想用cachingconfigurationApache转发代理。 我有一些客户必须不时地从互联网上下载一些大文件,我希望通过这个apache代理来完成,以便将这些大文件caching在磁盘上并从caching中返回。
我设法configuration代理,但caching不起作用。 我有caching , mem_cache , file_cache模块启用。 我有我的caching代理虚拟主机的以下configuration:
<VirtualHost *:80> ProxyRequests On ProxyVia On <Proxy *> Order deny,allow Deny from all Allow from all </Proxy> CacheEnable disk / CacheMaxFileSize 10000000000 CacheMinFileSize 1000000 CacheRoot "/var/cache/apache2/mod_disk_cache/" CacheMaxExpire 24 CacheLastModifiedFactor 0.1 CacheIgnoreQueryString On EnableSendfile On CacheDefaultExpire 7200 CacheIgnoreNoLastMod On CacheStorePrivate On CacheStoreNoStore On ServerName my-proxy ErrorLog "/var/log/apache2/proxy-error.log" CustomLog "/var/log/apache2/proxy-access.log" common </VirtualHost>
出于testing目的,我将Firefoxconfiguration为使用此代理。 我从http://download.java.net/jdk8/archive/b128/binaries/jdk-8-fcs-bin-b128-linux-i586-01_feb_2014.tar.gz下载了一个zip文件,大约需要5分钟。 我在这个事件的代理access.log中唯一的线是:
"GET http://download.java.net/jdk8/archive/b128/binaries/jdk-8-fcs-bin-b128-linux-i586-01_feb_2014.tar.gz HTTP/1.1" 200 115883719
当我稍后检查/ var / cache / apache2 / mod_disk_cache文件夹时,没有任何内容。 下一次我下载同样的文件也需要5分钟,尽pipe在我们的本地networking中速度要快得多 – 这意味着它再次从互联网上重新下载。
我怎样才能让它caching?
我已经看到这个设置Apache作为正向代理与caching问题,读什么可以被caching? – 请求或响应中没有“授权”标题(使用wireshark进行检查)。 所以它看起来应该被caching。 它也不应该受到这个bug的影响,因为apache版本是2.2.22-1ubuntu1而不是 2.4.3。
它最初没有正确logging,但CacheEnable不会隐式应用于转发代理了。 现在有一个笔记和更新的例子。
http://httpd.apache.org/docs/2.4/mod/mod_cache.html#cacheenable