我想拥有3个网站,所有网站都具有不同的公共域名,但是它们都共享一个通用的Java后端SpringMVC服务器,并使用通用的静态Web资源(如js和css文件)。

与其在3个地方维护UI代码,不如运行1台服务器并在Tomcat8,Jboss或Wildfly云实例(如OpenShift或AWS)上部署1个WAR,但仍然可以配置dns CNAME指向其上的不同路径战争。

例如,在这里每个域都将映射到其各自的端点,但对其他域没有可见性:

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


这可能吗?如果是这样,将配置哪些步骤?

最佳答案

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

要解决重复的Web应用程序代码的问题,可以使用maven-war-plugin创建pom叠加层。当Maven应用叠加层时,它将实质上应用应用程序中的文件与叠加层中的文件的并集。相交的所有文件都将从应用程序中使用,而不是覆盖文件。

为了解决Java代码重复的问题,您可以将通用代码分离到一个新项目中,并构建一个jar来用作依赖项。

07-24 09:39
查看更多