Tomcat 或 JBoss 托管 1 个具有多个网站的网络应用程序

Tomcat or JBoss hosting 1 webapp with multiple websites

我想要 3 个网站,所有网站都具有不同的 public 域名,但它们都共享一个公共的 java 后端 SpringMVC 服务器并使用常见的静态 Web 资源,例如 js 和 css 文件。

与其在 3 个地方维护 UI 代码,我宁愿 运行 1 个服务器并在 Tomcat8、Jboss 或 Wildfly 云上部署 1 个 WAR例如 OpenShift 或 AWS,但仍然能够将我的 dns CNAME 配置为指向 WAR 上的不同路径。

例如,这里是每个域映射到各自端点但看不到其他域的位置:

www.mydomainA.com ---> mycloudprovider.ip/sharedcontext/A
www.mydomainB.com ---> mycloudprovider.ip/sharedcontext/B
www.mydomainC.com ---> mycloudprovider.ip/sharedcontext/C

这可能吗?如果是这样,配置步骤是什么?

配置3个独立的项目实际上是有益的。他们都需要有自己的应用程序上下文,但可以共享一个父 POM。这将导致更好的负载平衡性能。此外,由于 Amazon 的定价结构使得设置 3 个微型实例比设置一个强大的实例更便宜 运行 所有 3 场战争。注意:您仍然可以让所有 3 个实例指向同一个数据源。

要解决重复webapp代码的问题,可以使用maven-war-plugin创建一个pom覆盖。当 Maven 应用覆盖时,它实际上将应用来自您的应用程序的文件与来自覆盖的文件的联合。任何相交的文件都将从应用程序而不是叠加层中使用。

解决java代码重复的问题,可以将常用的代码单独放到一个新的工程中,构建一个jar作为依赖使用。