2013-06-25 5 views
1

Я запускаю Tomcat на Ubuntu 12.10 и устанавливаю webapp. Он отлично работает при доступе с помощью Tomcat (localhost: 8080/webappname). Запросы на сервлет с использованием этого метода отображаются в журнале доступа Tomcat как/webappname/servlet/servletname. Тем не менее, я бы предпочел размещать статические файлы http, используя apache httpd. Таким образом, я установил и настроил mod_jk.Запрос на переписывание перед отправкой в ​​mod_jk

Проблема заключается в том, что запросы от сервера HTTPd отображаться в журнале Tomcat/сервлет/servletname, отсутствует имя WebAPP впереди, и, таким образом, возвращая 404.

Я попробовал, добавив:

RewriteEngine On 
RewriteRule ^/servlet/(.*)& /webappname/servlet/$1 [PT] 

в конфигурацию виртуального хоста apache, но это не сработало. Я не знаю, переписываются ли перезаписи на mod_jk.

Каков наилучший способ решить эту проблему? Должен ли запрос быть переписан на сервере httpd или есть способ сказать Tomcat перенаправить запрос на конкретный webapp?

Edit:

Эти строки находятся в виртуальной конфигурации хоста:

JkMount /servlet/ ajp13 
JkMount /servlet/* ajp13 

Это конфигурационный файл для mod_jk:

<IfModule jk_module> 
JkWorkersFile /etc/apache2/jk_workers.properties 
JkLogFile /var/log/apache2/mod_jk.log 
JkLogLevel info 
JkShmFile /var/log/apache2/jk-runtime-status 
JkWatchdogInterval 60 
<Location /jk-status> 
    # Inside Location we can omit the URL in JkMount 
    JkMount jk-status 
    Order deny,allow 
    Deny from all 
    Allow from 127.0.0.1 
</Location> 
<Location /jk-manager> 
    # Inside Location we can omit the URL in JkMount 
    JkMount jk-manager 
    Order deny,allow 
    Deny from all 
    Allow from 127.0.0.1 
</Location> 

Вот это рабочие свойства файл:

worker.list=ajp13 
worker.ajp13.type=ajp13 
worker.ajp13.host=localhost 
worker.ajp13.port=8009 
worker.ajp13.lbfactor=50 
worker.ajp13.cachesize=10 
worker.ajp13.cache_timeout=600 
worker.ajp13.socket_keepalive=1 
worker.ajp13.socket_timeout=300 
max_packet_size=65536 
+0

Вы должны предоставить конфигурацию mod_jk вы используете. –

+0

Отредактированное сообщение, чтобы предоставить конфигурационную информацию – noachr

ответ

2

Вы должны использовать:

JkMount /webappname/servlet/ ajp13 
JkMount /webappname/servlet/* ajp13 
+0

Спасибо - это похоже на работу, и Tomcat получает запросы. У меня теперь есть проблема, что запросы, отправленные таким образом, провоцируют исключения Serialization из GWT rpc, но это выходит за рамки этого вопроса. Еще раз спасибо. – noachr

Смежные вопросы