存储缓存文件,以便多个服务器可以访问它们

存储缓存文件,以便多个服务器可以访问它们

我想要开始为我的网站使用多个前端 Apache 服务器。

目前,我将各种 HTML 文件存储在缓存目录中,例如“/htmlcache/homepage.html”

显然我不想在每个服务器上重新缓存这些文件,我宁愿有一个中央存储。这通常是怎么做的?

我认为的选项如下:

  • 数据库(MySQL) - 额外负载 - 我应该存储大型.html 文件吗?
  • Memcache——应该用于较大的.html 文件吗?
  • 某种可访问的共享磁盘 - 不知道它是如何工作的

对我来说,延迟是关键。目前,磁盘读取操作对我来说运行良好。

更复杂的是,我还需要将我的 PHP 会话数据保存在一个中心位置。

此主题:https://stackoverflow.com/questions/580671/configure-session-to-work-on-applications-that-are-deployed-over-multiple-server建议使用 session_set_save_handler 将会话数据存储在共享数据库中。

您如何克服这个问题?

答案1

memcached 可以存储“大型”HTML 文件(适用于大值或小值)-(正如 Michael Mior 提到的)或者乌贼还有其他选择。在这三种方案中,我倾向于 Varnish(对于大多数小型环境来说,Squid 有点过头了,我认为 Varnish 在中型/大型环境中的扩展性更好:上次我检查时,Squid 不支持分布式缓存)。
显然,在部署这些解决方案之前,您需要对其进行测试。

回复:PHP 会话部分 -会话mysql是一个解决方案。用 PHP 编写自己的自定义会话处理程序是另一个解决方案。我个人建议使用 PECL 扩展之一,因为它们往往比 PHP 代码更高效/更快。

相关内容