保持多个服务器同步上传文件 – LAMP

我现在有一个网站,目前正在使用2个服务器,一个应用程序服务器和一个数据库服务器,但是应用程序服务器的负载正在增加,所以我们要添加第二个应用程序服务器。

我遇到的问题是网站有用户上传文件到服务器。 如何在两台服务器上获取上传的文件?

我不想将图像直接存储在数据库中,因为我们的应用程序已经是数据库密集型了。

有没有一种方法可以将服务器彼此同步,或者还有其他我可以做的事情吗?

任何帮助,将不胜感激。

谢谢

这很难回答,因为它完全取决于您的应用程序。 这听起来像你有一些核心的应用程序体系结构问题,不会在一个ServerFault问题中解决。 这样说,你可以采取一些步骤来解决你所描述的问题。

在这种情况下,最合适的做法是将文件共享分成独立的服务。 如果你有一个networking,可以让文件“无处不在(几乎)”,不要复制文件。 您可以通过NFS / CIFS或通过适当的存储协议(如iSCSI)来执行此操作。 作为本地存储挂载在相应的目录中。 根据networking的性能和存储需求,这可能会在页面加载时间中增加几毫秒的毫秒量。

我可以想到不同的解决scheme。

您可以通过NFS或iSCSI驱动器共享文件。 – 我怀疑这样做会有好的performance。

你可以把文件放在一个单独的服务器上,像CDN一样使用它。 – 这是一个有利的方式,因为它允许浏览器以同样的方式下载资源。

您可以使用像Cloudfront这样的真正的CDN

csync2是你的解决scheme: http ://oss.linbit.com/csync2/

它是专为确切的问题。 也许你阅读这个博客: http : //thuannvn.blogspot.de/2010/01/csync2-is-so-cool.html

HTH

另一个答案可能是使用一个名为BTSync的软件,它的安装和使用非常简单,并且可以让您轻松地保持文件在所需服务器上的同步。 它只需要3个terminal命令来安装,非常高效。

看看这里


和这里