(Как) Можно ли запустить более одного приложения Spring Boot на одном сервере и порте? - PullRequest
0 голосов
/ 31 января 2020

У меня есть веб-приложение Spring Boot, которое я хотел бы разделить на шесть отдельных приложений; один из них будет предоставлять домашнюю страницу и вход в систему в конечных точках под «/», а остальные будут запрашивать путь подкаталога («/subsystem1», «/subsystem2» и т. д. c ...). У меня есть довольно четкое представление о том, как я мог бы использовать JWT для передачи аутентификации / авторизации из приложения входа в систему другим.

Основная причина этого заключается в том, что каждая подсистема может быть изменена или обновлена ​​без выключения других. И организационно, поэтому нам не нужно подвергать все приложение процессу QA при изменении только одной подсистемы.

Можно ли настроить несколько экземпляров Spring Boot для запуска на одном сервере в то же время и один и тот же порт с разными путями / каталогами к их конечным точкам? Как?

Мне не удалось найти ни одного дублирующего вопроса, но вот два связанных вопроса, которые могут предложить подсказки:

Приемлемые ответы:

Если, как подсказывает ekalin , невозможно, чтобы несколько приложений Spring Boot прослушивали один и тот же порт, вот пара идей Я провел мозговой штурм (но не знаю, как это сделать sh):

  • Возможно, экземпляры могут работать на разных портах, кроме основного приложения (t он со страницей входа в систему) может "переслать" или перенаправить на другие приложения каким-либо образом, который скрывает их истинные URL-адреса? Например, "localhost: 8080 / subsystem1" будет псевдонимом для "localhost: 8081 /".

  • Возможно, у каждого приложения могут быть свои собственные контейнеры Docker, все они выполняются в общем Docker сеть, и мы используем Docker как-то для сопоставления каждого URL-пути к нужному приложению? Может ли это быть настроено с помощью docker -compose?

  • Мы настроили прокси-сервер, который сопоставляет URL-пути к отдельным приложениям.

1 Ответ

0 голосов
/ 31 января 2020

Вы не можете иметь более одного приложения, прослушивающего порт. Как ядру, в какое приложение отправлять пакеты?

Вы можете запустить http-сервер, такой как nginx, прослушивающий 8080, и каждое приложение в отдельном порту, а затем проксировать запросы на основе URL до желаемого приложения.

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