ProFTPd:一个 IP 地址上有多个域虚拟主机

ProFTPd:一个 IP 地址上有多个域虚拟主机

我有一个 Web 服务器,我们授予顾问 FTP 访问权限。对于托管在该服务器上的一个域,他需要访问“dev”目录,而对于托管在该服务器上的另一个域,他需要访问另一个目录。我尝试使用 VirtualHosts 进行设置,但遇到了问题。这是我的 proftpd.conf 文件中的 VirtualHost 位:

<VirtualHost www.example2.com>
        ServerName  "Example 2"
        DefaultRoot /var/www/example2/dev
</VirtualHost>
<VirtualHost www.example1.com>
        ServerName  "Example 1"
        DefaultServer on
        DefaultRoot /var/www/example1
</VirtualHost>

当我通过 FTP 连接到任一域时,我总是获得第一个 VirtualHost,即使我通过 FTP 连接到第二个域。

答案1

FTP 不像 HTTP 那样工作。没有基于名称的虚拟主机。只有基于 IP 的虚拟主机。如果您需要相同的用户名但不同的目录,您可以为它们使用单​​独的 TCP 端口或多个 IP。

答案2

请注意,随着RFC 7151,FTP 现在有一个HOST支持基于真实名称的虚拟主机的命令,就像Host标头对 HTTP 1.1 所做的那样。

ProFTPDHOST从 1.3.6rc1 版本开始实现此命令。要使用它,您可以简单地在您的<VirtualHost>部分中使用 DNS 名称,如下所示:

<VirtualHost mysite.example.com>

或者你可以明确地别名根据需要虚拟服务器:

<VirtualHost 1.2.3.4>
  ServerAlias mysite1.example.com
  ServerAlias ftp.example.com
  ...
</VirtualHost>

希望这可以帮助!

全面披露:我是 ProFTPD 的作者。

相关内容