跨多个服务器保持同步上传的文件 - PHP Linux

Dfr*_*373 7 php synchronization file

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

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

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

有没有办法让服务器彼此同步,或者我还能做些什么吗?

任何帮助,将不胜感激.

谢谢

编辑:我正在为那些帮助我更多地理解这个问题的人添加以下链接:

在多个服务器上同步文件 ,并 保持上载的文件同步跨多个服务器- LAMP

对于所有阅读这篇文章,NFS似乎是2中更好的.

NFS将使文件保持同步,但您也可以使用ftp在所有服务器上上传文件,但NFS看起来就像是要走的路.

tft*_*ftd 5

这是serverfault的问题.
无论如何,我认为你应该考虑进入"云".将上传从一台服务器同步到另一台服务器根本不可靠 - 您不知道可以获得哪种错误以及为什么可以获取它们.同步过程也将加载两个服务器.对我来说,正确的解决方案是在云端.

如果您选择同步方法,您可以使用以下几种解决方案:

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


Dfr*_*373 4

我从服务器故障得到这个答案:

在这种情况下,最合适的做法是将文件共享分解为自己的单独服务。如果您的网络可以让文件“同时(几乎)无处不在”,请不要复制文件。您可以通过 NFS/CIFS 或通过适当的存储协议(如 iSCSI)来完成此操作。作为本地存储安装在适当的目录中。根据网络性能和存储需求,这可能会导致页面加载时间增加几毫秒,无法检测到。

因此,使用 NFS 共享服务器文件可以工作或者

正如 @kgb 所说,您可以指定一台服务器来保存所有上传的文件,并让其他服务器从中提取文件(只需确保您运行 cron 或其他东西来备份文件)