端口80上的多个Tomcat服务

我有一个Tomcat服务器,我想运行多个webapps每个不同的名。 鉴于下面的configuration,我想能够连接到http://webapp1并获得其webapp和http://webapp2并得到那一个。

目前当我用这个configuration启动tomcat时,它抱怨在端口80上有多个绑定(我认为在给出不同的域的时候不会有问题),当我尝试访问它们中的任何一个时,不pipe我input的域是什么第一个webapp。

我如何才能按照我的意图来工作?

 <?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener className="org.apache.catalina.core.JasperListener" /> <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <GlobalNamingResources> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> <Service name="SERVICE_WEBAPP1"> <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" compression="on" address="webapp1" /> <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" ciphers="SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA" keystoreFile="KEYSTOREFILE1" keystorePass="keypass1" keystoreType="PKCS12" useIPVHosts="true" address="webapp1" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="443" /> <Engine name="SERVICE_WEBAPP1" defaultHost="webapp1" > <Host name="webapp1" appBase="webapp1dir" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> </Engine> </Service> <Service name="SERVICE_WEBAPP2"> <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" compression="on" address="webapp2" /> <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" ciphers="SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA" keystoreFile="KEYSTOREFILE2" keystorePass="keypass2" useIPVHosts="true" address="webapp2" /> <Engine name="SERVICE_WEBAPP2" defaultHost="webapp2" > <Host name="webapp2" appBase="webapp2dir" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> </Engine> </Service> </Server> 

使用基于名称的虚拟主机与Apache进行代理。

使用mod_proxy_ajpbuild立从Apache到Tomcat的连接,只需设置AJP连接器,而不是Tomcat中的HTTP连接器。

您阅读文档 。 是的,可以这么简单。