将 mod_jk 映射到与别名名称不同的应用程序

将 mod_jk 映射到与别名名称不同的应用程序

我们有一个名为 X 的互联网应用程序正在被一个名为 Y 的新应用程序取代。

我们使用 Apache 前端的 Tomcat 实例来为 X 和 Y 提供服务,并通过 mod_jk 进行通信。一个 Tomcat 托管 X,另一个托管 Y。

X 和 Y 已经安装在我们的生产服务器上 - X 正在由我们的客户使用,而 Y 正在进行最终测试:

JkMount /x loadbalancer-x
JkMount /x/* loadbalancer-x
JkMount /y loadbalancer-y
JkMount /y/* loadbalancer-y

让我们忽略这个通过隐蔽性来实现安全性的方面吧!

当 Y 投入生产时,有没有办法将旧的 URL 映射到新的应用程序,这样它www.mysite.com/x就会指向新的应用程序而不是旧的应用程序。

答案1

如果在 loadbalancer-y 上部署了一个名为 x 的应用程序,那么它将起作用。这就是问题所在 - 新应用程序使用不同的名称,但老板希望 URL 保持不变。我正在尝试找到一种方法来告诉 JKMount 在 URL X 请求时请求应用程序 Y。

这就是为什么Context元素存在。

  1. /xURL 前缀指向新的 worker loadbalancer-y

    JkMount /x loadbalancer-y
    
  2. 假设新应用程序的名称为,在您的元素中newname创建一个,如下所示:Context<Host>

    <Host name="your.domain.name"  appBase="webapps"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
        <Context path="/x" docBase="newname"/>
    </Host>
    

答案2

只指向JkMount /x loadbalancer-y不行吗?

答案3

与其全局地进行 JkMount,为什么不在 httpd 中创建一个 /x 目录条目并只使用 JkMount loadbalancer-y,然后将 loadbalancer-y 指向实际的应用程序而不是 tomcat 根目录。

相关内容