目前我在Tomcat 6上运行了2个web应用程序app1和app2:
2993064
我想配置Tomcat,以便它们在不同端口后面的根上下文中运行:
在http://localhost:8081
app1
app2于http://localhost:8082
需要做什么?
使用两个不同的Tomcat实例 .
编辑:
或者按照这个问题的答案中的解释配置Tomcat:Tomcat configuration help: multiple ports not responding
我认为您可以在 server.xml 文件中配置它并放置2个服务:
<Service name="app1"> <Connector port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443" /> <Engine name="Catalina" defaultHost="localhost"> <Host name="localhost" appBase="app1" unpackWARs="true" autoDeploy="true"> </Host> </Engine> </Service> <Service name="app2"> <Connector port="8082" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443" /> <Engine name="Catalina" defaultHost="localhost"> <Host name="localhost" appBase="app2" unpackWARs="true" autoDeploy="true"> </Host> </Engine> </Service>
添加连接器的另一个例子:
<Service name="reciver"> <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="10" enableLookups="false" acceptCount="100" connectionTimeout="10000" disableUploadTimeout="true" useBodyEncodingForURI="true"/> <Engine name="reciver" defaultHost="localhost" jvmRoute="host1"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" /> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false" xmlValidation="false" xmlNamespaceAware="false"> <Context docBase="browser" path="/browser" reloadable="false"/> </Host> </Engine> </Service> <Service name="reciver2"> <Connector port="8081" maxHttpHeaderSize="8192" maxThreads="10" enableLookups="false" acceptCount="1" connectionTimeout="10000" disableUploadTimeout="true" useBodyEncodingForURI="true" proxyName="example.pt" proxyPort="80"/> <Engine name="reciver2" defaultHost="example_app" jvmRoute="host2"> <Host name="example_app" appBase="test_app/example_app" unpackWARs="true" autoDeploy="false" xmlValidation="false" xmlNamespaceAware="false"> <Context docBase="example_app" path="/example_app" reloadable="false"/> </Host> </Engine> </Service> (...Repeted 2 more times.)
来自:http://www.coderanch.com/t/84172/Tomcat/listen-multiple-ports
我建议阅读整个主题,因为它讨论了使用此配置的性能命中,以及可能的竞争条件 .
除了运行两个Tomcat实例并使用ROOT应用程序(已经说过,并且是一个有点差和无效的解决方案),您可以使用Apache Tomcat实现它 . 配置apache以侦听两个端口并通过IP转发:端口到不同的Tomcat应用程序 . 但是你需要一个不同的端口来tomcat!
Apache配置
listen 8080,8081 ... <VirtualHost *:8080> ServerName localhost ProxyPass / http://localhost:8888/app1 ProxyPassReverse / http://localhost:8080/app1 </VirtualHost> <VirtualHost *:8081> ServerName localhost ProxyPass / http://localhost:8888/app2 ProxyPassReverse / http://localhost:8080/app2 </VirtualHost>
要么
listen 80,81 ... <VirtualHost *:80> ServerName localhost ProxyPass / http://localhost:8080/app1 ProxyPassReverse / http://localhost:8080/app1 </VirtualHost> <VirtualHost *:81> ServerName localhost ProxyPass / http://localhost:8080/app2 ProxyPassReverse / http://localhost:8080/app2 </VirtualHost>
Tomcat在以下指定的端口上运行:
$CATALINA_HOME/conf/server.xml
正如JB Nizet所写,设置两个不同的tomcat实例,并适当地配置端口值server.xml .
$ CATALINA_HOME / Tomcat的8081 / conf目录/ server.xml中:
<?xml version='1.0' encoding='utf-8'?> <Server port="8081" ... > ... </Server>
$ CATALINA_HOME / Tomcat的8082 / conf目录/ server.xml中:
<?xml version='1.0' encoding='utf-8'?> <Server port="8082" ... > ... </Server>
5 回答
使用两个不同的Tomcat实例 .
编辑:
或者按照这个问题的答案中的解释配置Tomcat:Tomcat configuration help: multiple ports not responding
我认为您可以在 server.xml 文件中配置它并放置2个服务:
添加连接器的另一个例子:
来自:http://www.coderanch.com/t/84172/Tomcat/listen-multiple-ports
我建议阅读整个主题,因为它讨论了使用此配置的性能命中,以及可能的竞争条件 .
除了运行两个Tomcat实例并使用ROOT应用程序(已经说过,并且是一个有点差和无效的解决方案),您可以使用Apache Tomcat实现它 . 配置apache以侦听两个端口并通过IP转发:端口到不同的Tomcat应用程序 . 但是你需要一个不同的端口来tomcat!
Apache配置
要么
Tomcat在以下指定的端口上运行:
正如JB Nizet所写,设置两个不同的tomcat实例,并适当地配置端口值server.xml .
$ CATALINA_HOME / Tomcat的8081 / conf目录/ server.xml中:
$ CATALINA_HOME / Tomcat的8082 / conf目录/ server.xml中: