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 отображал conent моего форума MyBB, файлы которого находятся внутри каталога /var/www/forum. Как это сделать?

Ответ 1

Собственно, я решил эту проблему со следующим кодом:

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

Ответ 2

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

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

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

Ответ 3

Я использую:

<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 является корневым приложением.