我希望拥有 3 网站,所有网站都有不同的公共域名,但它们都共享一个公共的Java后端SpringMVC服务器,并使用常见的静态网络资源,如js和css文件。
我宁愿在3个地方维护UI代码,而是在Tomcat8,Jboss或Wildfly云实例(如OpenShift或AWS)上运行1个服务器并部署1个WAR,但仍然可以配置我的dns CNAME&#39 ; s指向该WAR上的不同路径。
例如,这里是每个域映射到各自端点但不能看到其他端点的地方:
www.mydomainA.com ---> mycloudprovider.ip/sharedcontext/A
www.mydomainB.com ---> mycloudprovider.ip/sharedcontext/B
www.mydomainC.com ---> mycloudprovider.ip/sharedcontext/C
这可能吗?如果是,那么配置的步骤是什么?
答案 0 :(得分:0)
配置3个独立的项目实际上是有益的。他们都需要拥有自己的应用程序上下文,但可以共享一个父POM。这将带来更好的负载平衡性能。此外,由于亚马逊的定价结构使得设置3个微实例比运行所有3个战争的一个强大实例更便宜。注意:您仍然可以将所有3个实例指向同一个dataSource。
要解决重复的网络应用代码问题,您可以使用maven-war-plugin创建一个pom叠加层。当Maven应用叠加层时,它将基本上应用应用程序中的文件与叠加层中的文件的并集。任何相交的文件都将从应用程序而不是叠加层中使用。
要解决重复java代码的问题,可以将公共代码分成新项目并构建一个jar作为依赖项。