У меня есть ftp-сервер: ftp.company.com, с авторизацией.
Однако у некоторых клиентов ftp закрыт, а открыт только http.
Появилось желание продублировать доступ на чтение через http://ftp.company.com
Самый простой вариант был бы настроить на apache проброс каталога ftp как:
Код: Выделить всё
<VirtualHost *:80>
DocumentRoot /ftproot
ServerName ftp.company.com
</VirtualHost>
Поэтому пришла в голову идея настроить проксирование: апач обращается к локальному 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
При этом ссылается оно на http://ftp.company.com/username@/folder/
Вот это очень большая неприятность, похожая на багу proxy_ftp_module - основной вопрос - как ее победить?
Какие есть еще варианты проксирования?
Искал внешний софт, типа веб-интерфейса к фтп, чтобы прицепить его к ftp-локалхосту, а веб вывесить на apache, нашел только net2ftp, но он явно более широкий чем мне надо.