在单个主机上运行多个root \ no上下文Web应用程序

时间:2015-08-06 10:37:35

标签: apache tomcat

我有一个主机只有一个网络应用程序,目前我通过www.hostnameA.com/访问它,因为网络应用程序已作为tomcat ROOT网络应用程序部署到tomcat / webapps。

现在我需要向我的主机添加另一个Web应用程序,我也希望这个应用程序没有上下文,但是将通过另一个主机名www.hostnameB.com/访问它,但我只能部署一个ROOT tomcat Web应用程序。< / p>

我应该补充一点,我也在使用apache,我的虚拟主机看起来像:

 <VirtualHost *:80> 
    ServerName www.hostnameA.com

    ProxyRequests Off
    ProxyPreserveHost On

   <Proxy *>
        Order deny,allow
        Allow from all
   </Proxy>

    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/   
</VirtualHost>

我尝试将war文件重命名为webAppA,然后将其附加到proxypass,但它给了我400错误并继续将/ webAppA附加到URL:

ProxyPass / http://localhost:8080/webAppA

有解决方案吗?我真的不想为此在不同的端口上运行多个tomcat实例,还有其他选择吗?

1 个答案:

答案 0 :(得分:1)

如上所述,最直接的解决方案是使用Apache的mod_proxy_ajp,允许同时进行代理和AJP转发。配置应该类似于:

<VirtualHost *:80> 
    ServerName www.hostnameA.com
    ProxyPass / ajp://localhost:8009/webAppA/
    ProxyPassReverse / http://www.hostnameA.com/webAppA 
    [...]

...与www.hostnameB.com的 B 相同。