У меня есть веб-сервер, к которому мы даем консультанту доступ по FTP. Для одного домена, размещенного на этом сервере, ему нужен доступ к каталогу «dev», а для другого домена, размещенного на этом сервере, ему нужен доступ к другому каталогу. Я пытаюсь настроить это с помощью VirtualHosts, но у меня возникают проблемы. Вот бит VirtualHost в моем файле proftpd.conf:
<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 для второго домена.
Отметим, что с появлением RFC 7151, FTP теперь имеет HOST
команда для поддержки виртуальных хостов на основе истинных имен, как и Host
заголовок предназначен для HTTP 1.1.
И ProFTPD реализует это HOST
в версии 1.3.6rc1. Чтобы использовать его, вы можете просто использовать DNS-имена в своем <VirtualHost>
раздел, например:
<VirtualHost mysite.example.com>
Или вы можете явно псевдоним виртуальные серверы по мере необходимости:
<VirtualHost 1.2.3.4>
ServerAlias mysite1.example.com
ServerAlias ftp.example.com
...
</VirtualHost>
Надеюсь это поможет!
Полное раскрытие: я являюсь автором ProFTPD.
FTP не работает как HTTP. Виртуальных хостов на основе имен нет. Только на базе IP. Если вам нужно одно и то же имя пользователя, но разные каталоги, вы можете использовать для них отдельные порты TCP или несколько IP.