我有一个主机只有一个网络应用程序,目前我通过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实例,还有其他选择吗?
答案 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 相同。