多个Web服务器机器+ 1个DB服务器 - 如何处理上传的文件同步?

时间:2011-02-14 09:56:01

标签: php apache

我们在三台不同的机器上有3个Web服务器(apache + PHP),与数据库机器通信。我们的应用程序允许用户上传自己的图像。上载的图像将存储并映射到计算机上的本地驱动器。 首先我要承认,我们从未设计过要分发的应用程序。在上面的场景中,我们看到的是图像被上传并存储在一台服务器上,而其他服务器则无法使用。

上传内容的当前状态是什么 - 它是类似于S3还是通过NFS导出文件系统(安全问题?),还是像图像服务器那样允许你这样做?

2 个答案:

答案 0 :(得分:1)

以下是许多解决方案中的一小部分:

  1. 将它们存储在数据库中
  2. 单独的服务器,前面有Varnish / Squid。 (内存缓存)您可以使用rsync或其他工具来保持最新状态。
  3. CDN(虽然,我将它与#2结合)
  4. 混合搭配!

    对你来说这可能有点过分了......但这就是Facebook的做法: http://www.facebook.com/note.php?note_id=76191543919

答案 1 :(得分:0)

我们只是在SAN上映射共享驱动器。 CDN也是一个可行的选择。您只需要某处的共享磁盘空间。无论是在“云”中,还是在SAN上,还是在某个地方使用简单的共享网络驱动器......都没关系。