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

Как настроить комбинацию прокси-хостинга и локального хоста с Apache?

Я пытаюсь использовать тот же 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