2012-07-08 41 views
7

我有一个网站,现在当前使用2台服务器,一个应用服务器和数据库服务器,但在应用服务器上的负载增加,所以我们要添加第二个应用服务器。保持上载的文件同步跨多个服务器 - PHP的Linux

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

我不想直接存储图像数据库作为我们的应用程序的数据库密集了。

有没有办法跨越对方服务器同步或者是有别的东西,我可以做什么?

任何帮助,将不胜感激。

感谢

编辑:我加入的人,帮助我理解这个问题更加以下链接:

Synchronize Files on Multiple ServersKeep Uploaded Files in Sync Across Multiple Servers - LAMP

对于所有阅读这篇文章NFS似乎是2.在

NFS的会更好保持文件同步,但您也可以在所有服务器上使用ftp to upload这些文件,但NFS看起来像是要走的路。

+3

我不会标记帖子,因为我不知道它,但也许你可以有一个更好的运气在http://serverfault.com 。我认为这样更合适,虽然“编程”解决方案是可能的。 – Zagorax 2012-07-08 18:44:50

+0

我会问那里,如果我得到一个答案,我会发布在这里为那些谁需要它 – Dfranc3373 2012-07-08 18:53:22

+0

这里是链接到[serverfault](http://serverfault.com/questions/405873/keep-uploaded-files同步跨多服务器灯/ 405892#405892)的问题。他们也有一些体面的回答,以及 – Dfranc3373 2012-07-08 20:52:17

回答

4

我从服务器故障这样的回答:

在这样的情况下采取行动的最合适的当然是打破文件共享到自己的单独的服务。如果您的网络可以让文件“随处(几乎)”,请不要复制文件。“您可以通过NFS/CIFS或通过适当的存储协议(如iSCSI)来执行此操作。作为本地存储挂载到相应的目录中。根据您网络的性能和存储需求,这可能会在页面加载时间中增加几毫秒不可检测的毫秒。

因此,使用NFS共享服务器上的文件将工作或

由@kgb你可以指定一个单一的服务器来存储所有上传的文件,并有其他的服务器撤出的规定(只是确保你运行一个cron或备份文件)

+1

这的确是最好的答案。我认为NFS是正确的解决方案。你可以使用crontab,但是这样你总是会有一些时间将文件存储在一台服务器上。通过NFS,它将完美工作。你应该把自己的答案标记为可接受的,只要它是最适合你的问题的答案,而其他人可以很容易地找到答案,并且不会使用在我看来是错误的crontab/rsync方法和多余的。 – Zagorax 2012-07-08 22:56:32

2

大多数网站使用第三方指定的文件服务器一样Amazon S3用户上传解决这个问题。

1

您可以使用数据库服务器存储...并未在DB我的意思是,有一个web服务器运行过那里。它不会增加很多CPU负载,但是需要更好的通道。

5

这是serverfault的问题。
无论如何,我认为你绝对应该考虑进入“云”。 从一台服务器同步上传到另一台服务器简直是不可靠的 - 你不知道你可以得到什么样的错误,为什么你可以得到它们。此外,同步过程将加载两台服务器。对我来说,正确的解决方案是在云端进行。

,你应该选择你有几个解决方案的同步方法:

  1. 使用rsync同步您需要的服务器之间的文件。
  2. 使用crontab可以每X分钟/小时/天同步文件。
  3. 复制在某些事件(用户登录等)
2

另一种答案可能是使用了一块名为BTSync软件的文件,这是非常容易安装和使用,可以让你轻松保持文件根据需要跨越尽可能多的服务器进行同步。它只需要安装3个终端命令并且非常高效。

Take a look here


and here

1

你可以用rsync的做吧..人已经开始使用NFS建议..但是你创建一个故障点这样...如果NFS服务器宕机..你的服务器都拧了...纠正我,如果我错了

相关问题