2013-03-17 3 views
0

В Tomcat в настоящее время находится мое приложение для производства ROOT.war.Host Another ROOT.war Tomcat App

Мне нужно проверить новый ROOT.war,, но я не хочу останавливать запуск моего производственного приложения. Обратите внимание, что приложение необходимо развернуть в папке ROOT.

Что это самый простой способ сделать это?

+0

Развернитесь в другом контексте или попробуйте виртуальные хосты http://tomcat.apache.org/tomcat-6.0-doc/virtual-hosting-howto.html – Bart

+1

Вы тестируете приложение на своем производственном сервере? Вот в чем проблема. Используйте производственный сервер для производства. И еще один тестовый сервер для тестов. –

ответ

2

Tomcat может использовать виртуальный хостинг на основе имен так же, как Apache HTTPD. Вы должны

  • добавить второй <Host> элемент к вашему server.xml, внутри же Engine, но с другим значением для name и appBase
<Host name="app2.example.com" appBase="app2-webapps" 
    unpackWARs="true" autoDeploy="true" 
    xmlValidation="false" xmlNamespaceAware="false"/> 
  • поставить свою вторую ROOT.war в app2-webapps
  • если ваш Tomcat находится за обратным прокси, убедитесь, что заголовок Host передан тельный нетронутый (для Apache HTTPD с mod_proxy это означает, что установка ProxyPreserveHost On

Теперь запросы на http://app2.example.com/* будет обрабатываться вашим новым приложением, и запросы на любой другое имя хоста будут идти к старому.

Я использую этот метод для размещения нескольких разных производственных приложений в одном Tomcat, но я бы не рекомендовал использовать тот же Tomcat для смеси приложений для производства и разработки/тестирования. Вместо этого безопаснее использовать другой сервер или второй экземпляр Tomcat, работающий на другом порту.

+0

Должен ли я внести какие-либо изменения в 'mod_jk' для вашего ответа на работу? –

+0

@Kevin Вам не нужно ничего настраивать, чтобы сохранить заголовок узла (mod_jk делает это в любом случае), но вам может потребоваться добавить соответствующие ServerAlias, если ваш HTTPD выполняет виртуальный хостинг на основе имени. –

+0

Что значит «безопаснее использовать другой сервер»? –

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