【问题标题】:Keep Uploaded Files in Sync Across Multiple Servers - PHP Linux跨多个服务器保持上传文件同步 - PHP Linux
【发布时间】:2014-01-15 20:37:50
【问题描述】:

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

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

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

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

任何帮助将不胜感激。

谢谢

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

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

对于所有阅读这篇文章的人来说,NFS 似乎比 2 更好。

NFS 将保持文件同步,但您也可以在所有服务器上使用 ftp to upload 文件,但 NFS 看起来是不错的选择。

【问题讨论】:

  • 我没有标记这个帖子,因为我不确定,但也许你可以在serverfault.com 上获得更好的运气。我认为这更合适,尽管“编程”解决方案是可能的。
  • 我也会在那里问,如果我得到答案,我会在这里发布给需要的人
  • 这里是serverfault问题的链接。他们在那里也有一些不错的答案

标签: php file synchronization


【解决方案1】:

这是关于服务器故障的问题。
无论如何,我认为您绝对应该考虑进入“云”。 将上传从一台服务器同步到另一台服务器根本不可靠——您不知道会遇到什么样的错误以及为什么会遇到这些错误。此外,同步过程将加载两台服务器。对我来说,正确的解决方案是在云端。

如果您选择同步方法,您有几个解决方案:

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

【讨论】:

    【解决方案2】:

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

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

    所以使用 NFS 来共享服务器文件是可行的,或者

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

    【讨论】:

    • 这确实是最好的答案。我认为 NFS 是正确的解决方案。您可以使用 crontab,但这样一来,您总会有一段时间将文件仅存储在一台服务器中。使用 NFS,它将完美运行。您也应该在 SO 上将您自己的答案标记为已接受,只要它最适合您的问题并且其他人会轻松找到它并且不会使用 crontab/rsync 方法,在我看来,这是错误的和多余的。
    【解决方案3】:

    大多数网站通过使用第 3 方指定的文件服务器(如 Amazon S3)来解决此问题。

    【讨论】:

      【解决方案4】:

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

      Take a look here


      and here

      【讨论】:

        【解决方案5】:

        您可以使用数据库服务器进行存储...不是在数据库中,我的意思是,也有一个 Web 服务器在那里运行。它不会大幅增加 CPU 负载,但需要更好的通道。

        【讨论】:

          【解决方案6】:

          你可以用 rsync 来做到这一点..人们建议使用 nfs.. 但是这样你会产生一个故障点......如果 nfs 服务器出现故障..你的两个服务器都被搞砸了......如果我是,请纠正我错了

          【讨论】:

            猜你喜欢
            • 2015-09-21
            • 2020-02-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-11-28
            • 1970-01-01
            • 2020-06-28
            • 2016-05-21
            相关资源
            最近更新 更多