ProxyPass и DocumentRoot на одном домене


Допустим, у меня есть следующая конфигурация:

<VirtualHost domain.com>
    # Server names, admins, logs etc...

    ProxyVia On
    ProxyRequests Off
    <Location "/">
        ProxyPass http://localhost:8080/tomcat-webapp/
        ProxyPassReverse http://localhost:8080/tomcat-webapp/
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>
Теперь я хочу, чтобы Адрес domain.com/forum отображал конент моего форума MyBB, файлы которого находятся в каталоге /var/www/forum. Как этого добиться?
3 12

3 ответа:

На самом деле я решил эту проблему следующим кодом:

ProxyPass /forum !
ProxyPass / http://localhost:8080/tomcat-webapp/
ProxyPassReverse / http://localhost:8080/tomcat-webapp/
Alias /forum /var/www/forum

Рекомендуется использовать mod_rewrite для выполнения команды ProxyPass вместо команды ProxyPass/ProxyPassReverse.

Попробуйте что-нибудь вроде:

RewriteRule  ^/forum   -  [L]
RewriteRule  ^/(.*)    http://localhost:8080/tomcat-webapp/$1  [P,L]
ProxyPassReverse /     http://localhost:8080/tomcat-webapp/

Я использую:

<VirtualHost *:80>
#other irrelevant configs here
ProxyPass /forum http://localhost:8080/myBB
ProxyPassReverse /forum http://localhost:8080/myBB
ProxyPass / http://localhost:8081/tomcat-app
ProxyPassReverse / http://localhost:8081/tomcat-app
</VirtualHost>

Вам не нужно говорить "tomcat-app", если ваше приложение tomcat является корневым приложением.