A使用Curl和PHP设置内部代理类.设置如下:
代理服务器是一个相当便宜的VPS(有时有慢速磁盘i/o).对此服务器的所有请求都由单个index.php脚本处理.index.php从另一个快速服务器获取数据并显示给用户.
两台服务器之间的数据传输速度非常快,瓶颈只是代理服务器上的磁盘i/o.由于只有一个index.php - 我想知道
1)如何确保index.php在代理服务器上的Apache中被永久"限制"?(谷歌搜索php缓存,我发现许多自定义解决方案将缓存php的"数据"输出我想知道是否有任何预构建模块在apache中将缓存php脚本本身?).
2)数据是从代理服务器上的RAM /缓存中始终从后端服务器获取的吗?(假设有足够的内存)
3)apache在处理请求时是否从磁盘读取任何配置文件或其他文件?
4)在提供内容之前,apache是否等待将日志写入磁盘 - 如果是这样,我将禁用代理服务器上的日志记录(或者是否有办法确保首先提供内容而无需等待日志写入).
基本上,我想在'代理'服务器上一起消除磁盘i/o.
谢谢,
J.P
1)安装APC(http://pecl.php.net/apc),这将编译您的PHP脚本一次并将其保存在共享内存中,用于Web服务器进程(或给定的TTL)的生命周期.
2)如果你的脚本获取数据并且没有将它缓存/存储在文件系统上,它将在RAM中,是的.但仅限于请求的持续时间.PHP使用"无共享"策略,这意味着在请求之后释放所有内存.如果您确实在文件系统上缓存数据,请考虑使用memcached(http://memcached.org/)来绕过文件i/o.
3)如果您激活了.htaccess支持,Apache将搜索通往您的php文件的每个路径中的那些.请参阅为什么我不能在Apache中禁用.htaccess?了解更多信息.
4)不是100%肯定,但它可能会等待.