Страница 1 из 1

ftp over http с авторизацией - proxy_ftp_module?

Добавлено: 2014-04-04 15:24:08
iltmpz
Добрый день!
У меня есть ftp-сервер: ftp.company.com, с авторизацией.

Однако у некоторых клиентов ftp закрыт, а открыт только http.

Появилось желание продублировать доступ на чтение через http://ftp.company.com

Самый простой вариант был бы настроить на apache проброс каталога ftp как:

Код: Выделить всё

<VirtualHost *:80>
    DocumentRoot /ftproot
    ServerName ftp.company.com
</VirtualHost>
Однако при этом придется дублировать фтп-авторизацию для каталогов каждому пользователю средствами apache, что не есть гуд.

Поэтому пришла в голову идея настроить проксирование: апач обращается к локальному ftp, тот отвечает, апач передает ответ пользователю.
Сделал я так:

Код: Выделить всё

<VirtualHost *:80>
    ServerName ftp.company.com

    ProxyPreserveHost On
    ProxyRequests Off
    DefaultType application/octet-stream
    ProxyVia On
    <Location />
        ProxyPass ftp://ftp.company.com/
        ProxyPassReverse ftp://ftp.company.com/
    </Location>
</VirtualHost>
в апаче включено:

Код: Выделить всё

LoadModule proxy_module libexec/apache22/mod_proxy.so
LoadModule proxy_connect_module libexec/apache22/mod_proxy_connect.so
LoadModule proxy_http_module libexec/apache22/mod_proxy_http.so
LoadModule proxy_ftp_module libexec/apache22/mod_proxy_ftp.so
И, почти все работает, но:
1. ссылки имеют формат: http://ftp.company.com/username@/subdir/ - при попытке в нее ткнуть получаем ошибку. Впрочем, не сильно напрягающую, наверняка можно поправить костылем в виде mod_rewrite, если бы не другая проблема:

2. каталоги с пробелами:

Код: Выделить всё

drwxrwxr-x   9 username admins        512 May 21  2010 new folder
тут кликабельна не ссылка "new folder", как было бы логично, а последнее слово: folder.
При этом ссылается оно на http://ftp.company.com/username@/folder/
Вот это очень большая неприятность, похожая на багу proxy_ftp_module - основной вопрос - как ее победить?

Какие есть еще варианты проксирования?
Искал внешний софт, типа веб-интерфейса к фтп, чтобы прицепить его к ftp-локалхосту, а веб вывесить на apache, нашел только net2ftp, но он явно более широкий чем мне надо.