单个 apache tomcat 上的多个域
Posted
技术标签:
【中文标题】单个 apache tomcat 上的多个域【英文标题】:Multiple domains on single apache tomcat 【发布时间】:2012-10-18 06:45:53 【问题描述】:我有两个域,但只有一个运行 tomcat 7 的虚拟服务器。我有自己的 ubuntu Linux,在虚拟服务器上运行具有完全 root 访问权限。我设置了shorewall防火墙,它将端口80上的任何请求转发到端口8080(tomcat正在监听的地方)。
所以我已经在网上搜索过,但我只找到在我的情况下不起作用的“解决方案”。这是我到目前为止所做的:
-
我将 websiteA.war 作为 ROOT.war 复制到 $CATALINA_HOME/webapps/ 文件夹中
我还将我的 websiteB.war 作为 WebsiteB.war 复制到 $CATALINA_HOME/webapps/ 文件夹中
我通过以下方式修改了我的 $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"
我在文件夹“$CATALINA_HOME/conf/Catalina/www.websiteB.com”中创建了以下文件ROOT.xml:
?xml version="1.0" encoding="UTF-8"?
上下文 displayName="www.websiteB.com" docBase="" path=""
/上下文
重新启动 Tomcat。 websiteA.com 部署在“/”下,websiteB.com 部署在“/websiteB”下
输入 www.websiteB.com 到达“/”,这意味着 websiteA 实际上显示为 websiteB.com我在这里做错了什么?
【问题讨论】:
嘿,你得到答案了吗? 是的,刚刚用答案更新了这个非常古老的问题。 【参考方案1】:转到您的$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
具有相同的级别(!!!)。所以两个目录共存!
【讨论】:
以上是关于单个 apache tomcat 上的多个域的主要内容,如果未能解决你的问题,请参考以下文章