развертывание разных войн загрузки spring на внешнем сервере tomcat с тем же портом

#java #spring-boot #deployment #tomcat8

#java #spring-boot #развертывание #tomcat8

Вопрос:

как мне развернуть разные войны загрузки spring в контейнере tomcat У меня есть 3 войны с именем

myapp1.war

myapp2.war

myapp3.war

Я добавил эти войны в папку tomcat webapps и внес некоторые изменения в server.xml под

 <Context path="/apipath" docBase="myapp1" reloadable="true"></Context>
  

Я могу получить доступ к приложению на http://localhost:9080/apipath/mymethoduriapp1
Теперь, если я добавлю другой контекстный путь в тот же тег хоста для другой войны, например

 <Context path="/apipath" docBase="myapp2" reloadable="true"></Context>
  

сервер не может запуститься сейчас.

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

http://localhost:9080/apipath/mymethoduriapp1

http://localhost:9080/apipath/mymethoduriapp2

http://localhost:9080/apipath/mymethoduriapp3

Заранее спасибо за помощь

Комментарии:

1. Если вы не добавите базу документов, она автоматически рассмотрит все войны в папке webapp и развернет их.

2. спасибо за ваш ответ, согласитесь, что теперь рассматривается папка веб-приложения, но путь в качестве имени войны не из контекстного пути, как указано выше / apipath

Ответ №1:

Нет, вы не можете иметь несколько приложений, прослушивающих один и тот же порт. Как ядро узнает, в какое приложение отправлять пакеты? Что вы можете сделать, это запустить http-сервер, такой как nginx или apache, который будет прослушивать 9090 и каждое приложение на другом порту, а затем передавать запросы на основе URL-адреса в нужное приложение.

nginx, вероятно, самый популярный и простой в настройке, ниже приведена базовая конфигурация для этого случая

Обратный прокси-сервер Nginx. Несколько приложений в одном домене