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

Jas*_*son 3 ftp virtualhost proftpd

我有一个网络服务器,我们正在为顾问提供 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>
Run Code Online (Sandbox Code Playgroud)

当我 FTP 到任一域时,我总是得到第一个 VirtualHost,即使我 FTP 到第二个域。

Cas*_*lia 6

请注意,随着RFC 7151的出现,FTP 现在有一个HOST命令来支持真正的基于名称的虚拟主机,就像HostHTTP 1.1的标头一样。

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

<VirtualHost mysite.example.com>
Run Code Online (Sandbox Code Playgroud)

或者您可以根据需要显式为虚拟服务器设置别名

<VirtualHost 1.2.3.4>
  ServerAlias mysite1.example.com
  ServerAlias ftp.example.com
  ...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!

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

  • 谢谢!我刚刚提交了 [an issue](https://github.com/proftpd/proftpd/issues/281) 以更新该文档。 (2认同)