#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. Несколько приложений в одном домене