Я пытаюсь использовать тот же Apache, что и сервер для Subversion и Redmine (приложение RubyOnRails). Текущая настройка - это Apache, размещающий Subversion с использованием стандартных mod_dav и mod_svn_dav, а Redmine работает на mongrel на том же сервере на порту 3000 с перенаправлением Apache mod_proxy_http на него.
Я новичок в Apache, поэтому у меня есть стандартная настройка, основанная на документации Subversion и Mongrel. Проблема в том, что стандартная конфигурация дворняги выглядит следующим образом:
ProxyRequests off
<VirtualHost *:80>
ServerName xxx.xxx.xxx.xxx
ServerAlias serverName
ErrorLog logs/error.log
CustomLog logs/access.log common
ProxyPass / http://xxx.xxx.xxx.xxx:3000/
ProxyPassReverse / http://xxx.xxx.xxx.xxx:3000
ProxyPreserveHost on
ProxyPass /images !
ProxyPass /stylesheets !
Alias /images "C:\redmine-0.8.4\public\images"
Alias /stylesheets "C:\redmine-0.8.4\public\stylesheets"
</VirtualHost>
Конфигурация Subversion выглядит следующим образом:
<Location /svn>
DAV svn
SVNParentPath "C:\svn_repository"
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile "C:\svn_repository\fat\http-auth-file"
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
Как показано выше, отображение - '/' для Redmine и '/ svn' для subversion, что не работает для меня, потому что доступ к subversion перенаправляется на сервер mongrel. Из документации у меня сложилось впечатление, что <Location> имеет более высокий приоритет, чем <VirtualHost>.
В любом случае вышеуказанный параметр не работает. Если кто-нибудь может помочь мне определить правильную настройку, я очень ценю это.
Я также попытался изменить настройку VirtualHost, чтобы ProxyPass и ProxyPassReverse отображались в '/ redmine'. Это работает только для перенаправления главной страницы на mongrel, но остальная часть URL-адреса в приложении Redmine не переводится, чтобы иметь дополнительный '/ redmine' в URL-адресе.
Итак, я предпочитаю первую настройку, когда '/' перенаправляется в Redmine на Mongrel, а '/ svn' - в подрывную. Но если это невозможно, я открыт для второго варианта.
Заранее спасибо.
Похоже, вы это пропустили:
ProxyRequests off
<VirtualHost *:80>
ServerName xxx.xxx.xxx.xxx
ServerAlias serverName
ErrorLog logs/error.log
CustomLog logs/access.log common
ProxyPass / http://xxx.xxx.xxx.xxx:3000/
ProxyPassReverse / http://xxx.xxx.xxx.xxx:3000
ProxyPreserveHost on
ProxyPass /images !
ProxyPass /stylesheets !
### note the line below ###
ProxyPass /svn !
### note the line above ###
Alias /images "C:\redmine-0.8.4\public\images"
Alias /stylesheets "C:\redmine-0.8.4\public\stylesheets"
</VirtualHost>
Я почти уверен, что вы просто упустили возможность не выполнять ProxyPass для пути / svn