Как развернуть несколько веб-приложений в Tomcat, которые будут работать на разных портах? - PullRequest
11 голосов
/ 06 декабря 2010

Как развернуть несколько веб-приложений Java в Tomcat, которые будут работать на разных портах? - Как сделать настройки, чтобы разные веб-приложения работали на разных портах - Что для этого нужно сделать?

Ответы [ 4 ]

7 голосов
/ 06 декабря 2010

Вам потребуется настроить другую службу в вашем файле server.xml (tomcat_home / conf).Если вы не изменили файл сервера, у вас уже должен быть файл с именем Catalina (я использую Tomcat 5.5, у вас может быть что-то немного отличающееся в зависимости от версии)

<Service name="Dev2">
    <Connector port="8090" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />
    <Connector port="8092" 
               enableLookups="false" redirectPort="9443" protocol="AJP/1.3" />

    <Engine name="Dev2" defaultHost="MyDev">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
      <Host name="MyDev" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
      </Host>
    </Engine>
</Service>

Обратите внимание, что имена изменились с Catalina наDev2 и localhost для MyDev.Измените их на то, что вам подходит для вашего приложения.Порты и разъемы также изменились.После настройки новой службы вам необходимо развернуть приложения на соответствующем сервисе / порте.Это достигается с помощью XML-файлов в разделе (см. Виртуальный хостинг )

Tomcat_Home/conf/Catalina/localhost/

и

Tomcat_Home/conf/Dev2/MyDev/

для соответствующих настраиваемых портов

На данный момент все, что вам нужно сделать, это добавить еще несколько файлов, чтобы указать Сервис на ваше приложение.Например, в разделе Tomcat_Home/conf/Dev2/MyDev/ у меня есть файл, который называется Another.xml. Этот файл содержит следующее

<Context path="/" docBase="C:/to_delete" debug="10" crossContext="false">
</Context>

Теперь я могу получить доступ к новому приложению с помощью веб-адреса http://127.0.0.1:8090/Another Если я попытаюсь получить доступ к этомуиспользуя порт 8080 по умолчанию, я получаю сообщение об ошибке, поскольку приложение не было развернуто для данного порта.

Несколько замечаний по поводу этой настройки.Если вы используете VirtualVM для просмотра приложения, вы заметите, что они используют один и тот же идентификатор процесса.Поэтому вы должны быть особенно осторожны со своими ресурсами.Они будут использовать одно и то же пространство кучи, и все потоки будут отображаться в одном списке.Если вы входите в свои приложения (т. Е. Log4j), убедитесь, что у вас есть возможность показать, какой поток выполнял работу, так как в противном случае было бы сложно определить, из какого порта / приложения это будет происходить.

КакБожо уже указывал: может быть проще просто запустить два экземпляра Tomcat вместо одного сервера, который прослушивает несколько портов.

4 голосов
/ 02 сентября 2011

Извините, что сделал это ответом.Я не вижу никаких комментариев по этому вопросу.Мэйби, вопрос слишком старый или моя репутация недостаточно высока.

Однако я сам исследовал этот вопрос.Вам нужно будет узнать гораздо больше о том, как Tomcat, http-серверы и системная среда Java могут использовать один и тот же экземпляр.Я читал, где это тоже ОЧЕНЬ медленно.

Лучшая ставка - отдельные экземпляры.Есть два довольно простых способа сделать это: A / Для Ubuntu вы можете использовать SVN для получения этого скрипта: http://ubuntuforums.org/showthread.php?t=1211517 http://code.google.com/p/tomcat-linux/

B / Ваш собственный, для пользовательских экземпляров.http://brian.pontarelli.com/2007/09/17/multiple-tomcat-instances-on-ubuntu/

Последний написан для tomcat 5.5, но, вероятно, его можно адаптировать к Tomcat 6

Однако лучшие направления для нескольких экземпляров JVM для последней версии Tomcat для Linux приведены здесь:1015 *http://www.puschitz.com/InstallingTomcat.html

4 голосов
/ 06 декабря 2010

Вам лучше иметь несколько установок tomcat. Было бы проще.

Полагаю, вы можете зарегистрировать несколько <Connector> s в server.xml, а затем отфильтровать контексты, но это утомительно и звучит неправильно.

2 голосов
/ 16 апреля 2012

Вы можете использовать mod-proxy в apache для перенаправления пользовательского порта на стандартный.

mod proxy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...