我有一个提供 FTP 空间的网站。这是主站点的次要功能,但却是一个很受欢迎的功能。我使用 ProFTPd 和 MySQL,它可以很好地将用户设置到他们的主目录中,并将其锁定等。它还为用户提供 FTP 访问权限,以确保安全。
我现在遇到的麻烦是扩展问题。
我的 4TB 服务器上的空间很快就用完了,我需要将 FTP 流量卸载到多个服务器上。然而,我似乎在每种情况下都遇到了障碍。
场景 1:我仅运行多个服务器,并在每个服务器上为各个用户分配 FTP 空间。优点包括主服务器上的流量不会成为瓶颈,但是如果驱动器上只剩下 100gb,则不允许用户 A(例如)升级到 500gb 的存储空间。(可能会发生)。
方案 2:运行类似 GlusterFS 的程序,创建一个服务器池作为分布式文件系统,并将我的用户目录作为 Gluster 客户端安装在主服务器上。我认为这样做的缺点是,如果我将来有 50 个 FTP 服务器(可能),那么所有 50 个服务器都将把流量指向我的一个主服务器,瓶颈将非常大。
方案 3:使用类似 S3FS 的东西,只需安装一个(或多个)存储桶。优点是无限可扩展,但缺点包括上述瓶颈和来自 AWS 的惊人带宽费用。
有人能为我描述的场景建议一条“最佳路线”吗?忘记现有客户吧,如果这意味着我可以得到一个工作模型,我很乐意一次移动数据库中的数据和目录条目。我只是没有意识到它会变得流行,所以没有提前考虑太多。
因此,理想情况下,我希望能够像现在一样从 PHP 中动态创建具有配额的 FTP 用户,创建主目录并将用户锁定在其中,但能够根据需要添加额外的服务器(具有冗余),以便能够很好地扩展而不会造成瓶颈。如果 SSH 上的 SFTP 可以添加到所有这些中,那将是一个天赐的结果。
我可以单独完成上述所有事情,但似乎无法找到适合我的需求的解决方案来满足所有需求。
非常感谢您的帮助和建议。