我们有一个名为X的互联网应用程序,正在被一个名为Y的新应用程序所取代。
我们使用Apache前端的Tomcat实例来服务X和Y,通过mod_jk进行通信。 有一个Tomcat托pipeX和另一个托pipeY.
X和Y已经安装在我们的生产服务器上 – X正在被我们的客户使用,而Y正在进行最后的testing:
JkMount /x loadbalancer-x JkMount /x/* loadbalancer-x JkMount /y loadbalancer-y JkMount /y/* loadbalancer-y
( 让我们忽略这个安全到隐藏的方面! )
当Y投入生产的时候,是否有办法将旧的URL映射到新的应用程序,这样www.mysite.com/x会指向新的应用程序,而不是旧的应用程序。
如果在loadbalancer-y上有一个名为x的应用程序,它将会工作。 这就是问题 – 新的应用程序是一个不同的名称,但老板希望URL保持不变。 我试图find一种方法来告诉JKMount当请求的URL X请求应用程序Y.
这就是Context元素存在的原因。
指向新工作者loadbalancer-y /x URL前缀:
JkMount /x loadbalancer-y
假设新应用程序的名称是newname ,请在<Host>元素中创build一个Context ,如下所示:
<Host name="your.domain.name" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="/x" docBase="newname"/> </Host>
只需指向JkMount /x loadbalancer-y将不起作用?
为什么不在httpd中创build一个/ x目录项,而是在JkMount loadbalancer-y中创build一个/ x目录项,然后在实际的应用程序而不是tomcat根目录下指定loadbalancer-y。