使用一个域 FTP 到多个服务器,无需负载平衡

使用一个域 FTP 到多个服务器,无需负载平衡

因此,我正在研究如何让用户仅通过一个域(例如 ftp.mysite.com)就可以通过 FTP 访问不同的服务器。从某种意义上说,每个服务器都是独一无二的,运行自己的进程和用户等。

我当时正在考虑构建一台托管在 ftp.mysite.com 上的单机,然后通过高速局域网将上传的文件分发到正确的服务器。

这样做可行吗?例如,我可以创建一个 Java 服务器应用程序,该应用程序将从 SQL 数据库获取用户详细信息,将文件上传到 FTP 服务器上的临时存储,然后立即将这些文件传输到正确的服务器,然后清理临时文件。

我曾经有过其他的想法,比如在每台服务器上安装一个 ftp 服务器并从 SQL 服务器获取用户详细信息,但我相信我无法使用单个域进行上传。

欢迎对我当前的想法提出任何意见和批评:)

编辑:使我的想法更清晰。

我的主要计划是为 FTP 设置一个 IP,供用户连接。然后,该 FTP 服务器将通过 SSH 连接到正确的服务器,提取文件列表,并在用户的 FTP 客户端中显示给用户。上传时,文件将被放入 FTP 服务器上的一个临时文件夹中,该文件夹通过 LAN 与其他服务器共享。然后,FTP 服务器将通过高速 LAN 将上传的文件从 FTP 服务器上的共享复制到正确的服务器。

我希望这尽可能简单地方便用户连接和更改他们的文件,因此使用单个 IP 和 FTP 进行上传。

答案1

根据您的补充信息,为什么不简单地运行 NFS 或等效文件共享,其中 FTP 服务器是 NFS/文件共享客户端?IE 将 FTP 位置设置为一组共享,以便客户端实际上根据其 FTP 进入的目录直接通过 FTP 进入相应文件服务器的磁盘。

这样就无需编写额外的代码,而且意味着上传和下载的 FTP 文件可立即使用并与服务器保持一致。您没有提到您使用的操作系统,但在 Linux 下执行此操作非常简单 - 并且绝对没有什么可以阻止将 NFS 磁盘用作 FTP 服务器的目标。

答案2

我认为问题不在于域名,我猜是在于它背后的单个 IP 地址。

从表面上看,您提出的建议是可行的,尽管相当麻烦且可能不安全。

正如您所怀疑的,我怀疑您是否能够在每台服务器上实际可靠地安装 FTP 并根据用户名路由连接。

你没有详细说明你的场景,但根据你的要求,我有几个其他的想法 -

  1. 您可以设置一个 VPN 基础设施,人们可以在获得 FTP 访问权限之前连接到该基础设施,并允许他们连接到代表各个 FTP 站点的 RFC1918 地址,甚至可能基于源 IP 进行路由。这增加了安全性,但复杂性取决于有多少用户。

  2. 您可能希望创建一个 FTP 站点,然后将文件系统的各个部分通过 NFS 安装(或类似方式)到不同的机器上。您应该能够使用用户名来设置文件上传到的根路径 [ 取决于您的 FTP 服务器 ]

  3. FTP 真的需要吗?也许您可以查看其他更简单的协议,然后将它们与非默认端口关联(例如 SCP/SFTP)

相关内容