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

问题描述:

我们在三台不同的机器上有3个webservers(apache + PHP),与数据库机器交谈。我们的应用程序允许用户上传自己的图像。上传的图像被存储并映射到机器上的本地驱动器。 让我首先承认,我们从来没有设计我们的应用程序分发。在上述场景中,我们看到的是图像上传并存储在一台服务器上,而其他服务器不可用。多个Web服务器机器+ 1个DB服务器 - 如何处理上传的文件同步?

上传内容的最新技术状态是什么?是S3还是通过NFS导出文件系统(安全问题?),还是像图像服务器,它可以让你做到这一点?

我们只是在我们的SAN映射共享驱动器。 CDN也是一个可行的选择。你只需要共享磁盘空间某处。无论是在'云'中,还是在SAN上,或者在某个简单的共享网络驱动器中,这都无关紧要。

这里仅仅是少数许多的解决方案:

  1. 在前面将它们存储在数据库中
  2. 单独的服务器,与光油/鱿鱼。 (内存中缓存),您可以使用rsync或其他工具来保持最新。
  3. 一个CDN(虽然,我会用#2结合起来)

混搭!

这可能是矫枉过正你..但是这就是Facebook要做的事: http://www.facebook.com/note.php?note_id=76191543919