link 存储服务器与前端服务器的最有效方式?

Most efficient way to link a storage server with the front-end server?

首先我想说谢谢你花时间阅读这篇文章。

所以我目前正在做一些研究并计划如何使此设置发挥最佳效果。

我有一个主服务器,运行 一个为客户定制的 CRM。客户端想要开始上传大文件,这些文件很快就会填满服务器磁盘。因此,这些文件需要保存在 remote/alternative 服务器上,但也可以通过 HTTP 访问(显示在前端 CRM 上)。

我该如何设置这样的东西?

我考虑过使用 FTP 将文件传输到远程服务器,但这似乎是一个额外的不必要步骤,因为文件会先上传到主服务器,然后再发送到辅助服务器。这是带宽和响应时间的两倍。

也许有一种方法可以将辅助服务器作为 "network location" 附加到主服务器上,然后在上传文件时将文件移动到它上面。

可能出现的另一个问题是,主服务器需要能够在存储服务器上动态创建目录,因为它是 CRM,添加新客户后文件将上传到 /clients/{ID} /{PROJECT}/* 例如。

我考虑过使用 Amazon S3 或其他云存储服务,但客户想要一个专用服务器来存储。

另一种可能性,也许是让用户直接上传到存储服务器,然后存储服务器将信息发送回主服务器,但不确定如何最好。

主服务器是运行 CentOS,用WHM/cPanel管理。

正如评论中已经提到的,您绝对不想使用 FTP。这可能是最糟糕的解决方案。

一般来说,服务器方面的解决方案必须是透明的,如果两个服务器都是 运行 基于 Unix 的 OS 那么 NFS 是典型的方法。这是关于在 CentOS 上设置 NFS 的简短方法: https://www.howtoforge.com/tutorial/setting-up-an-nfs-server-and-client-on-centos-7/

如果将来出于某种原因您决定将存储转移到 Amazon,那么好消息是它已经支持 NFS(和 SMB),因此重新配置成本保持在最低水平。

如果其中一台服务器在 Windows 上,则 SMB 很好。它还在访问方面提供了更大的灵活性(旁注:恕我直言,在大多数情况下,典型的 Unix 访问方案绰绰有余)。 配置也不难,但它不是 Unix 原生的。因为 SMB 速度较慢,但​​如果您不需要一流的实时性能,那将不是问题(老实说,最大的延迟是从客户端到服务器的连接,而不是服务器到服务器的连接) 在这里您可以找到 CentOS 上 SMB 的图形和 CMD 配置说明: https://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-samba-configuring.html

WebDAV 是通用的,当用于通过高延迟网络(如亚马逊云)访问文件时,它比 SMB 更具优势。在本地网络上,WebDAV 的性能可能比 SMB 差。此外,它的文件大小限制为 4 GB