Tomcat 同一java web应用程序到多个子域的url重定向/映射

Tomcat 同一java web应用程序到多个子域的url重定向/映射,tomcat,apache2,Tomcat,Apache2,我有一个域名,比如www.domain.com。我开发了一个java web应用程序,比如jwa。现在我想使用子域为不同的客户端安装相同的应用程序,最好的解决方案是什么 类似“client1.domain.com”的内容指向“client1”(重命名为jwa) 我知道我们可以得到client1.domain.com/client1/但是client1两次并不好。或者至少我们可以得到client1.domain.com/jwa/,而不需要多个tomcat实例?顺便说一句,我在同一台服务器上运行Ap

我有一个域名,比如www.domain.com。我开发了一个java web应用程序,比如jwa。现在我想使用子域为不同的客户端安装相同的应用程序,最好的解决方案是什么

类似“client1.domain.com”的内容指向“client1”(重命名为jwa)

我知道我们可以得到client1.domain.com/client1/但是client1两次并不好。或者至少我们可以得到client1.domain.com/jwa/,而不需要多个tomcat实例?顺便说一句,我在同一台服务器上运行ApacheHTTP服务器,并为java/tomcat应用程序使用“proxy_模块”


关于

您不需要多个Tomcat实例-您可以跨多个子域指向多个客户端以使用同一个web应用程序

但请确保这与您的业务用例相匹配,即您实际上是希望多个webapp实例运行,还是一个实例可以服务于您的所有客户机

我指的是品牌/徽标/共享数据/外观和感觉等-这在所有客户中都很常见吗

假设是这样

配置Apache后,正确的方法是使用
VirtualHost
指令和mod_proxy

在Apache端这样的配置应该可以工作——为每个子域创建一个,并将
ProxyPass
ProxyPassReverse
指向Tomcat web应用程序

<VirtualHost *:80>
  ServerName client1.domain.com

  ProxyRequests Off
  ProxyPreserveHost On

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

  ProxyPass /jwa http://client1.domain.com:8080/jwa
  ProxyPassReverse /jwa http://client1.domain.com:8080/jwa
</VirtualHost>

ServerName client1.domain.com
代理请求关闭
代理主机
命令拒绝,允许
通融
ProxyPass/jwahttp://client1.domain.com:8080/jwa
ProxyPassReverse/jwahttp://client1.domain.com:8080/jwa
相关阅读

Apache文档


还有一个没有Apache httpd的解决方案,您可以在Tomcat server.xml中配置主机entires,但是Apache是管理域URL的更好地方

感谢您的响应,但是不同的客户端有不同的外观和感觉。另外,我不想在url中显示它们/jwa,而是说client1.domain.com,它应该在内部指向client1.domain.com/jwa。(因为域名本身就是web应用程序名)@user237865:是的,可以这样做。您必须将/jwa设置为Tomcat中每个域的默认web应用程序,然后它将不会显示在URL中。请参阅我先前关于如何实现这一点的回答。。在您的情况下,每个客户端都需要不同的/jwa webapp副本,比如jwaclient1、jwaclient2等,因为您需要不同的功能。Jose,我尝试了您所说的:在apache http.conf>>ServerName client1.domain.com中,ProxyRequests Off ProxyPreserveHost On Order deny,从tomcat server.xml中的所有ProxyPass/ProxyPassReverse/允许。。。。。。但当我尝试client1.domain.com时,它还是给出了404错误,有什么建议吗?client1.domain.com:8080是否直接点击Tomcat为您的/jwa应用程序服务?首先尝试解决这个问题,然后您应该从ApacheJose处进行检查:我已经尝试过了,我能够在webcontent中看到index.jsp,因此client1.domain.com能够识别。但我有一个文件夹管理员(管理模块),我使用的是根目录中的几个文件,如/common/includes/header.jsp,上面写着“File”/common/includes/meta.jsp“notfound”-Jasper异常。任何关于错误原因和修复方法的建议,谢谢。