温馨提示:本文翻译自stackoverflow.com,查看原文请点击:deployment - (How) Can I run more than one Spring Boot application on the same server and port?

deployment - (如何)我可以在同一服务器和端口上运行多个Spring Boot应用程序吗?

发布于 2020-04-07 11:53:18

我有一个Spring Boot Web应用程序,我想分成大约六个独立的应用程序。一个将在“ /下的端点处提供主页并登录,其他每个将声明一个子目录路径(“ /subsystem1”,“ /subsystem2”等)。我有一个非常清楚的想法,我如何使用JWT将身份验证/授权从登录应用程序传递给其他应用程序。

这样做的主要原因是,可以在不关闭其他子系统的情况下修改或更新每个子系统。从组织上来说,当只更改一个子系统时,我们不必对整个应用程序进行质量检查。

是否可以将多个Spring Boot实例设置为在同一时间同时在同一服务器上运行,并且它们的端点具有不同的路径/目录?怎么样?

我找不到任何重复的问题,但这是两个可能提供线索的相关问题:

可接受的答案:

ekalin所言,如果不可能有多个Spring Boot应用程序监听同一个端口,那么以下是我脑力激荡的一些想法(但不知道如何实现):

  • 也许实例可以在不同的端口上运行,但是主应用程序(带有登录页面的实例)可以以某种隐藏其真实URL的方式“转发”或重定向到其他应用程序?例如,“ localhost:8080 / subsystem1”将是“ localhost:8081 /”的别名。

  • 也许每个应用程序可以有自己的Docker容器,它们都在共享的Docker网络中运行,而我们以某种方式使用Docker将每个URL路径映射到正确的应用程序?可以使用docker-compose进行设置吗?

  • 我们设置了某种代理服务器,将URL路径重新映射到单独的应用程序。

查看更多

提问者
workerjoe
被浏览
80
ekalin 2020-02-01 03:58

一个端口上侦听的应用程序不能超过一个。内核如何将软件包发送到哪个应用程序?

您可以在8080上运行诸如nginx之类的http服务器,并在不同的端口中运行每个应用程序,然后将基于URL的请求代理到所需的应用程序。