Apache,PHP缓存

Apache,PHP缓存,php,apache,caching,curl,Php,Apache,Caching,Curl,我们已经使用Curl和PHP设置了一种内部代理。设置如下所示: 代理服务器是一种相当便宜的VPS(有时磁盘i/o速度较慢)。对该服务器的所有请求都由一个index.php脚本处理。php从另一个快速服务器获取数据并显示给用户 两台服务器之间的数据传输速度非常快,瓶颈仅在于代理服务器上的磁盘i/o。因为只有一个index.php-我想知道 1) 如何确保index.php在代理服务器上的Apache中永久“cahced”?(在谷歌搜索php缓存时,我发现了许多可以缓存php输出的“数据”的定制解决

我们已经使用Curl和PHP设置了一种内部代理。设置如下所示:

代理服务器是一种相当便宜的VPS(有时磁盘i/o速度较慢)。对该服务器的所有请求都由一个index.php脚本处理。php从另一个快速服务器获取数据并显示给用户

两台服务器之间的数据传输速度非常快,瓶颈仅在于代理服务器上的磁盘i/o。因为只有一个index.php-我想知道

1) 如何确保index.php在代理服务器上的Apache中永久“cahced”?(在谷歌搜索php缓存时,我发现了许多可以缓存php输出的“数据”的定制解决方案。我想知道apache中是否有任何预构建模块可以缓存php脚本本身?)

2) 从后端服务器获取的数据是否始终位于代理服务器上的RAM/缓存中?(假设有足够的内存)

3) 在处理请求时,apache是否从磁盘读取任何配置文件或其他文件

4) apache是否在提供内容之前等待将日志写入磁盘?如果是,我将禁用代理服务器上的日志记录(或者是否有方法确保在不等待写入日志的情况下首先提供内容)

基本上,我希望在“代理”服务器上同时消除磁盘I/o

谢谢

JP

1)安装APC(),这将编译一次PHP脚本,并在Web服务器进程(或给定的TTL)的生命周期内将其保存在共享内存中

2) 如果您的脚本获取数据,但没有将其缓存/存储在文件系统中,那么它将在RAM中,是的。但仅限于请求期间。PHP使用“不共享”策略,这意味着在请求后释放所有内存。如果在文件系统上执行缓存数据,请考虑使用MyCache(),而不是绕过文件I/O

3) 如果您激活了.htaccess支持,Apache将在指向php文件的每个路径中搜索这些支持。有关更多信息,请参阅


4) 不是100%确定,但它可能会等待

为什么不使用类似这样的东西,它是为这种类型的任务显式构建的,不会带来Apache的开销?

我建议将“tinyproxy”用于此任务。
你想做的每件事都做得非常有效。

哇。我得到了3个答案,都很有用:)。谢谢大家,谢谢!您的答案是如此精确,现在我相信我已经走上了解决问题的正确道路:)Varnish不只是用于静态HTTP请求吗?似乎对PHP不起作用。