Назад | Перейти на главную страницу

ProFTPd: несколько виртуальных хостов домена на одном IP-адресе

У меня есть веб-сервер, к которому мы даем консультанту доступ по 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.