Tomcat和多个域/应用程序
目前,我在端口80上运行带有单个WAR应用程序的单个tomcat。域名www.foo.org指向这个服务器ip。
在端口80 上为不同的客户端添加www.bar.org域名的过程是什么?
谢谢
从一开始,你的conf / server.xml中有一个“主机”logging用于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 "%r" %s %b" /> </Host>
例如,现在您可以添加另一个“主机”logging
<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 "%r" %s %b" /> </Host>
其中name="anotherclient.com"
是新客户端的域名, appBase="anotherclient"
是其Web应用程序根目录名称(部署你的战争的地方); 它是相对于tomcat的主目录。
tomcat重新启动后将会接受更改。
请求转到任何其他域(未在server.xml
列出),但指向您的服务器的IP地址将被传递给默认应用程序,它在Engine
元素中指定
<Engine name="Catalina" defaultHost="localhost">
在其默认configuration中,Tomcat接受任何主机名的请求,并将它们全部发送到conf / server.xml中定义的“localhost”<Host>。 如果你没有改变这个,那么你所要做的就是确保你有两个主机名设置的DNSlogging指向你的服务器。
如果你想为每个主机名拥有一组不同的webapps,那么你必须在conf / server.xml中定义第二个<Host>,并为它使用适当的主机名。 (请注意,您将始终必须有一个“默认”主机,其中所有请求都不匹配任何明确定义的主机)。
你可以在这里阅读<Host>的文档: http : //tomcat.apache.org/tomcat-7.0-doc/config/host.html (这是Tomcat 7.0.x.你没有提到你的版本,所以我给你链接到最新版本的文档)。
通常你有一个不同于80的端口(如8080或7001或任何你想要的)的tomcat(或其他应用程序服务器)。 之后,您将端口80上的Web服务器(如Apache HTTP服务器),并configuration一个或多个连接器指向具有不同地址的不同应用程序服务器上的不同端口。
对于Apache http + tomcat,你可以看看这个链接:
http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html