我有一个在 Web 服务器上运行的内容管理系统,其中允许用户将图像、文件等资产上传到服务器。
我遇到的问题是,将有 2 台服务器在负载均衡器后面运行,我正在尝试找到一种有效的方法来处理资产管理。
我的问题是:
资产每次都会上传到一台服务器吗?或者是否有可能图像/文件最终会根据负载进入 server1 或 server2?
如果我不知道它们最终在哪个服务器上,我如何提供图像?我是否必须在两台服务器之间保持这些资产(图像/文件)的目录同步?
谢谢,
我有一个在 Web 服务器上运行的内容管理系统,其中允许用户将图像、文件等资产上传到服务器。
我遇到的问题是,将有 2 台服务器在负载均衡器后面运行,我正在尝试找到一种有效的方法来处理资产管理。
我的问题是:
资产每次都会上传到一台服务器吗?或者是否有可能图像/文件最终会根据负载进入 server1 或 server2?
如果我不知道它们最终在哪个服务器上,我如何提供图像?我是否必须在两台服务器之间保持这些资产(图像/文件)的目录同步?
谢谢,
同步是一个很难破解的问题。您可以使用 Couchdb 进行临时同步,但这需要对低级问题有很好的了解。因此,您需要选择一个写入大师。
数据库
您可以查看DRDB :D 使用一台服务器作为写入主机,另一台作为从机。然后,您可以从两者中服务器内容。这种方法对于数据库对来说是惊人的。
注意:将您的代码和 URL 分开用于 write-master 和 serve-only 会很烦人
沙发数据库
您可以使用couchdb,但我认为这可能是矫枉过正。这是针对大量数据和高级别容错的。
NFS
您可以将 write-master 上的资产目录导出为 nfs 驱动器,然后从另一台计算机导入。但是在这种情况下,它不会在所有情况下都是负载平衡的——即,只有当文件被从站缓存时。您可以使用第三台计算机作为 NFS 服务器——这将允许您扩展到更多的 Web 服务器。
中央 NFS 服务器可能是您最好的解决方案,因为您可以在没有 write-master 的情况下这样做,因为每个前端服务器都可以执行写入。这是我会使用的方法,除非我想超越 PB 范围:P