47

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

在端口 80 上为不同的客户端添加www.bar.org域的过程是什么?

谢谢

4

3 回答 3

60

从一开始,您的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 主目录的。

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

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

<Engine name="Catalina" defaultHost="localhost">
于 2012-12-13T21:46:50.123 回答
5

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

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

您可以在此处阅读 <Host> 的文档:http: //tomcat.apache.org/tomcat-7.0-doc/config/host.html(适用于 Tomcat 7.0.x。您没有提及您的版本,所以我给了您是最新版本文档的链接)。

于 2012-05-22T15:45:38.547 回答
3

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

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

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

于 2012-05-22T15:26:13.953 回答