我想要拥有 3 个网站,所有网站都具有不同的公共(public)域名,但它们都共享一个通用的 java 后端 SpringMVC 服务器,并使用通用的静态 Web 资源,如 js 和 css 文件。
与其在 3 个地方维护 UI 代码,我宁愿在 Tomcat8、Jboss 或 Wildfly 云实例(如 OpenShift 或 AWS)上运行 1 个服务器并部署 1 个 WAR,但仍然能够配置我的 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。这将导致更好的负载平衡性能。此外,由于亚马逊的定价结构,设置 3 个微型实例比一个强大的实例来运行所有 3 场 war 要便宜。注意:您仍然可以让所有 3 个实例指向同一个数据源。
要解决重复的 webapp 代码的问题,您可以使用 maven-war-plugin 创建一个 pom 覆盖.当 Maven 应用覆盖时,它实际上将应用来自您的应用程序的文件与来自覆盖的文件的联合。任何相交的文件都将从应用程序而不是叠加层中使用。
解决java代码重复的问题,可以将常用的代码单独放到一个新的工程中,构建一个jar作为依赖。
关于spring-mvc - Tomcat 或 JBoss 托管 1 个具有多个网站的 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29862540/