apache - 在单个主机上运行多个 root\no context web 应用程序

标签 apache tomcat

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

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

我应该补充说我也在使用 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 实例,还有其他选择吗?

最佳答案

如上所述,最直接的解决方案是使用 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 相同。

关于apache - 在单个主机上运行多个 root\no context web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31853578/

相关文章:

java - Spring Security 2 自定义身份验证提供程序不保存安全上下文

hibernate - Tomcat、Hibernate、JPA 和法拉盛

java - 配置 Spring MVC 和 Hibernate 时 sessionFactory 出错

php - simplexml_load_file 不工作

php - 子数据不显示在查询结果中 - 将 Apache Solr 4.8.1 与 mySql 结合使用

php - 如何修复 "Fatal error: Maximum execution time of 30 seconds exceeded"

php - 为什么我在防火墙后面的网络应用程序返回我的 IP 地址而不是域名?

linux - Apache 使用 SELinux 在 CentOS 7 上执行 MATLAB 二进制文件

Tomcat 服务器崩溃

java - Eclipse 自动关闭