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

Виртуальные хосты с Tomcat + Mod_jk

Я установил Apache и Tomcat в своей системе и хочу объединить их с помощью Mod_JK. Я создал рабочего mod_jk (ajp13_worker) и добавил виртуальный хост в свою конфигурацию Apache:

<VirtualHost *:80>
    ServerName      tomcat.mydomain.com
    DocumentRoot    /usr/local/tomcat/webapps/      

        # Tomcat
    JkMount /* ajp13_worker
    JkMount /*.jsp ajp13_worker
    JkMount /*.jspx ajp13_worker
</VirtualHost>

и он работает нормально, я попадаю на страницу Tomcat по умолчанию. Приложения Manager тоже работают нормально.

Затем у меня есть приложение, которое находится в папке PATH-TO-TOMCAT / webapps / myapp. Он должен быть доступен под myapp.mydomain.com, поэтому я добавил второй виртуальный хост, на этот раз с «DocumentRoot / usr / local / tomcat / webapps / myapp». Но это не сработало: я всегда попадал на страницу Tomact по умолчанию, а не в корень моего приложения. Поэтому я использовал ModRewite, чтобы переписать запрос в контексте моего приложения. Виртуальный сервер Apache выглядит так:

<VirtualHost *:80>
        ServerName      myapp.mydomain.com
        DocumentRoot    /usr/local/tomcat/webapps/myapp/

        RewriteEngine On
        RewriteCond     %{REQUEST_URI}   !^/myapp/.*
        RewriteRule ^/(.*)$ /myapp/$1 [PT]

        # Tomcat
        JkMount /* ajp13_worker
        JkMount /*.jsp ajp13_worker
        JkMount /*.jspx ajp13_worker
</VirtualHost>

Этот виртуальный хост работает, запросы переписываются, и мое приложение доступно на myapp.mydomain.com. Но теперь мой Tomcat создает для каждого отдельного запроса новый сеанс, и количество сеансов увеличивается, когда несколько пользователей обращаются к странице.

Я попробовал несколько руководств, но большинство из них не помогло решить эту проблему. Я думаю, что что-то упускаю. Может ли кто-нибудь объяснить мне, как правильно настраиваются виртуальные хосты в комбинации Apache / Tomcat / Mod-JK?

Большое спасибо,

Клод

Хорошо, нашел. В Tomcat server.xml вы можете указать путь контекста для каждого хоста:

<Host name="app.mydomain.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="PATH-TO-TOMCAT/webapps/app"/>
</Host>

Моя ошибка заключалась в том, что я всегда пытался изменить параметр appBase и не знал об элементе Context!