我们可以将多个URL指向tomcat中的同一个webapp

时间:2011-07-08 13:58:23

标签: apache web-applications tomcat

我正在使用apache web服务器和tomcat服务器来托管很少的web应用程序。

这些网络应用程序彼此之间没有太大差别,我想将所有这些Web应用程序整合到一个webapp中,以最大限度地减少流程开销。

目前正在使用单独的网址访问网络应用程序:localhost:8080 / webapp1,localhost:8080 / webapp2。

如果没有更改网址,我可以在tomcat上托管一个webapplication,说“singlewebapp”,这样它就会响应localhost:8080 / webapp1以及localhost:8080 / webapp2?

3 个答案:

答案 0 :(得分:5)

我的一位团队成员在symlinksjunctions上提出了一个想法,引发了关于apache tomcat的docbase功能的讨论,我们在其中找到了一个非常优雅的答案。

假设webapplication是abc.war。我们在tomcat webapps中将abc.war部署为abc文件夹,然后我们需要按如下方式配置tomcat的server.xml并重新启动tomcat:

<Host ...>
  ...
  <Context path="/webapp1" docBase="/abc" /> 
  <Context path="/webapp2" docBase="/abc" /> 
</Host>

相信这对于支持白标和多租户非常有用。

答案 1 :(得分:0)

我认为你不能这样做。看起来所有应用程序的主机名和端口都相同,但上下文根(webapp1和webapp2)不同。我们不能使用sinlgle上下文根来访问具有相同主机名和端口的myltiple应用程序。

每个Web服务器都可以在一个端口和主机组合上运行一个应用程序。如果要在同一主机上运行多个应用程序,显然需要添加尽可能多的虚拟IP,并且应在Web服务器.config文件中进行配置,以使应用程序可以虚拟访问。

我们可以根据IP地址在Web服务器上创建虚拟服务器(您需要学习软件和硬件虚拟服务器概念)。要在单个服务器上拥有多个IP地址,您需要添加尽可能多的以太网卡,以虚拟地扩展IP数量。

如果您可以使用虚拟服务器概念,那么您需要稍微改变一下您的需求。

答案 2 :(得分:0)

而不是编辑server.xml,在tomcat的catalina的本地主机(或主机)中创建context.xml。因为如果编辑server.xml我们需要重启服务器。

创建context.xml:

  1. xml文件名必须是您的路径名i,e webapp1 / webapp2

  2. xml中的数据如下(如果要为abc.war文件创建路径)

    A)。 xml文件名是webapp1.xml    B)。 xml文件名是webapp2.xml

    "lessthan symbol" ?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    "lessthan symbol" Context reloadable="true" privileged="true" docBase="${catalina.home}/abc" crossContext="true" antiResourceLocking="false" allowLinks="true"/>
    
  3. 上面的xml文件必须放在tomacat / conf / Catalina //