单个apache tomcat上的多个域

时间:2012-10-28 21:55:11

标签: tomcat multiple-domains

我有两个域但只有一个运行tomcat 7的虚拟服务器。我有自己的ubuntu Linux,在虚拟服务器上运行完全root访问权限。我设置了shorewall防火墙,它将端口80上的任何请求转发到端口8080(tomcat监听的地方)。

所以我已经在网上搜索了但我只发现在我的情况下不起作用的“解决方案”。这就是我到目前为止所做的:

  1. 我将我的websiteA.war复制为ROOT.war到$ CATALINA_HOME / webapps / folder
  2. 我还将我的websiteB.war复制为WebsiteB.war到$ CATALINA_HOME / webapps / folder
  3. 我通过以下方式修改了我的$ CATALINA_HOME / conf / server.xml:

    主机名=“www.websiteA.com”appBase =“webapps”unpackWARs =“true”autoDeploy =“true”

    主机名=“www.websiteB.de”appBase =“webapps / websiteB”unpackWARs =“true”autoDeploy =“true”

    主机名=“localhost”appBase =“webapps”unpackWARs =“true”autoDeploy =“true”

  4. 我在“$ CATALINA_HOME / conf / Catalina / www.websiteB.com”文件夹中创建了以下文件ROOT.xml:

    ?xml version =“1.0”encoding =“UTF-8”?

    上下文displayName =“www.websiteB.com”docBase =“”path =“”

    /背景

  5. 重启tomcat。 websiteA.com部署在“/”下,websiteB.com部署在“/ websiteB”下

  6. 进入www.websiteB.com到达“/”,这意味着websiteA实际上是为websiteB.com显示的。
  7. 我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

转到您的$CATALINA_HOME/conf/server.xml文件。

在那里,您将找到以下部分:

<Engine name="Catalina" defaultHost="localhost">
    <!-- ... some other stuff ... -->
    <Host name="www.websiteA-Address" appBase="webapps" unpackWARs="true" autoDeploy="true"></Host>
    <Host name="www.websiteB-Address" appBase="directory/of/WAR-files-for-B" unpackWARs="true" autoDeploy="true"></Host>
    <Host name="websiteB-Address" appBase="directory/of/WAR-files-for-B" unpackWARs="true" autoDeploy="true"></Host>
    <Host name="www.websiteC-Address"  appBase="directory/of/WAR-files-for-C" unpackWARs="true" autoDeploy="true"></Host>
</Engine>

因此,appBase将是您必须放置ROOT.war(!)的目录,而name是将映射到此目录的域名。

directory/of/WAR-files$CATALINA_HOME中的子目录,与标准文件夹webapps具有相同的级别(!!!)。所以两个目录共存!