Tomcat和多个域/应用程序

时间:2012-05-22 15:11:02

标签: tomcat

目前我在端口80上使用单个WAR应用程序运行单个tomcat。域名 www.foo.org 指向此服务器ip。

在端口80上为其他客户端添加 www.bar.org 域的步骤是什么?

谢谢

3 个答案:

答案 0 :(得分:51)

从一开始,您在 conf / server.xml 中为localhost

创建了一条“主机”记录
<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
      <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

现在您可以添加其他“主机”记录,例如

  <Host name="anotherclient.com"  appBase="anotherclient" unpackWARs="true" autoDeploy="true">

       <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="anotherclient_access_log." suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  </Host>

其中name="anotherclient.com"是新客户端的域名,appBase="anotherclient"是其Web应用程序根目录名称(您部署战争的地方);这是相对于tomcat home dir。

重新启动tomcat后将接受更改。

要求转到任何其他域(未在server.xml中列出)但指向服务器的IP地址的请求将传递到默认应用程序,它在Engine元素中指定

<Engine name="Catalina" defaultHost="localhost">

答案 1 :(得分:5)

在默认配置中,Tomcat接受对任何主机名的请求,并将它们全部发送到“localhost”&lt; Host&gt;在conf / server.xml中定义。如果您没有更改,那么您所要做的就是确保为两个主机名设置DNS记录以指向您的服务器。

如果您想为每个主机名设置一组不同的webapp,那么您必须定义第二个&lt; Host&gt;在conf / server.xml中并为其使用适当的主机名。 (请注意,您将始终拥有一个“默认”主机,其中所有请求都与任何明确定义的主机不匹配)。

您可以阅读&lt; Host&gt;的文档。这里:http://tomcat.apache.org/tomcat-7.0-doc/config/host.html(那是Tomcat 7.0.x.你没有提到你的版本,所以我给你一个最新版本文档的链接。)

答案 2 :(得分:3)

通常,您在端口上有一个不同于80的tomcat(或其他应用程序服务器)(如8080或7001或您想要的任何东西)。 之后,在端口80上放置一个Web服务器(如apache http服务器),并配置一个或多个连接器,指向不同地址的不同应用服务器上的不同端口。

对于Apache http + tomcat,您可以查看以下链接:

http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html