我有一个networking服务器,我们正在给顾问FTP访问。 对于在该服务器上托pipe的一个域,他需要访问“开发”目录,而对于托pipe在该服务器上的不同域,他需要访问不同的目录。 我正在尝试使用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到第二个域。
FTP不像HTTP一样工作。 没有基于名称的虚拟主机。 只有基于IP。 如果您需要相同的用户名,但不同的目录,则可以使用单独的TCP端口或多个IP。
请注意,随着RFC 7151的出现,FTP现在具有用于支持真正的基于名称的虚拟主机的HOST命令,就像Host头对HTTP 1.1所做的那样。
ProFTPD在1.3.6rc1版本中实现了这个HOST命令。 要使用它,您可以简单地在<VirtualHost>部分中使用DNS名称,如下所示:
<VirtualHost mysite.example.com>
或者,您可以根据需要显式别名虚拟服务器:
<VirtualHost 1.2.3.4> ServerAlias mysite1.example.com ServerAlias ftp.example.com ... </VirtualHost>
希望这可以帮助!
充分披露:我是ProFTPD的作者。