Файл Mod_JK, Tomcat и Apache Httpd не найден при использовании псевдонима

Я пытался найти решение того, что, по моему мнению, должно быть очень распространенным использованием псевдонима с Tomcat и Apache Httpd, но я не могу его найти.

У меня есть сервер приложений Tomcat, и я хочу иметь возможность использовать псевдонимы для обслуживания динамического содержимого. Я настроил Apache Httpd в качестве внешнего интерфейса с Mod_JK для обслуживания всех динамических файлов через Tomcat. Это работает нормально, за исключением случаев использования псевдонимов, поскольку Tomcat не знает, как обращаться с псевдонимом.

По сути, у меня есть приложение Tomcat /webapps/myApp, внутри которого у меня есть «/folderA», поэтому использование http:localhost:8080/myApp/folderA работает нормально, а также localhost/myApp/folderA. Я хочу, чтобы пользователь /folderB мог указывать на /folderA и обслуживать динамический контент, и тогда что-то не получается.

У меня все хорошо работает с mod_jk, и запросы псевдонимов перенаправляются на Tomcat, однако Tomcat не знает, что делать с псевдонимом, поэтому пытается найти /webapps/myApp/folderB, которого не существует, поэтому я получаю «файл не найдена" ошибка.

Я пытался использовать <Context path..., но потом получаю статический контент. Я также пытался использовать Apache RewriteRule для передачи запросов из /folderB в /folderA, но это тоже не работает. Ниже приведен пример настроек VirtualHost, которые у меня есть. Я предполагаю, что мне нужно что-то сделать в конце Tomcat, чтобы он знал, как обрабатывать /folderB и указывать его на /folderA ИЛИ заставить httpd переводить /folderB в /folderA перед передачей информации Tomcat.

Любая помощь приветствуется. Спасибо!

<VirtualHost *:80>


    DocumentRoot "/webapps/ROOT"
    Alias /folderB "webapps/ROOT/folderA"


    JkMount /folderB/* myWorker

    ServerName myServer.local
    ServerAlias www.myServer.local

    ErrorLog "logs/myServer.local-error.log"
</VirtualHost>

person Lostlinkpr    schedule 18.03.2013    source источник


Ответы (1)


Очень поздно, но у меня та же проблема, и вот рабочее решение: Псевдоним в VirtualHost игнорируется для всех файлов, обрабатываемых mod_jk.

Обновите свой tomcat/conf/server.xml и добавьте контекст к вашему хосту:

  <Host name="your-domain.com" appBase="webapps">
    <!-- root path -->
    <Context path="" docBase="/your/app/" />
    <!-- alias for folderB -->
    <Context path="/folderB" docBase="/your/app/somewhere/else/folderb/" /> 
  </Host>

Меня это очень смущает, потому что ColdFusion и Connector знают псевдонимы Apache. Я обновлю свой ответ, если у меня будет прогресс.

person da_didi    schedule 04.07.2013