日期:2014-05-16  浏览次数:20739 次

同时启动多个Tomcat 和 Linux部署多个tomcat

同时启动多个Tomcat?

出于某种需要,需要同时启动多个Tomcat服务器。如果不加任何修改,在一台服务器上同时运行两个Tomcat服务显然会发生端口冲突。假设现在已经按照正常的方式安装配置好了第一个Tomcat,第二个如何设置呢?现将解决方案写出来分享一下,希望能对有这方面需要的朋友有点启发。

以下apache-tomcat-5.5.15 和 jakarta-tomcat-5.0.28 为例说明:

(注意:所用Tomcat服务器都为解压版(即绿化版),非安装版;安装版不能同时启动多个。)

1、先将jakarta-tomcat-5.0.28.zip 和 apache-tomcat-5.5.15.zip分别解压到某个盘。

2、特别要注意:不要设置CATALINA_HOME

3、分别修改安装目录下的conf子目录中的server.xml文件(注意:两个文件中对应的端口号要不一样) :

a、修改http访问端口(默认为8080端口),将8080修改为tomcat不在使用的端口号。此处所设的端口号即是以后访问web时所用的端口号。

<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8080"

minProcessors="5" maxProcessors="75"

enableLookups="true" redirectPort="8443"

acceptCount="100" debug="0" connectionTimeout="20000"

useURIValidationHack="false" disableUploadTimeout="true" />

b、修改Shutdown端口(默认为8005端口),将8005修改为没有在使用的端口号,例如8055。

<Server port="8005" shutdown="SHUTDOWN" debug="0">

c、修改8009端口,将8009修改为没有在使用的端口号,例如8099。

<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"

port="8009" minProcessors="5" maxProcessors ="75"

enableLookups="true" redirectPort="8443"

acceptCount="10" debug="0" connectionTimeout ="20000"

useURIValidationHack="false"

protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" />

4、依次启动两个tomcat。

以下是使用Tomcat6.0.16解压版本所做的实验:

1、解压Tomcat到一个新的目录,比如d:\TomcatServer2。

2、新建一个环境变量CATALINA_HOME2,路径为d:\TomcatServer2。

3、编辑Tomcat/bin/startup.bat和catalina.bat,把CATALINA_HOME全部替换成CATALINA_HOME2。

4、编辑Tomcat/conf/server.xml,将8080和8005端口号8开头都改为9开头(其他端口只要不冲突即可),并修改默认编码为utf-8(以支持中文链接)

示例:

<Connector port="9080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="9443" URIEncoding='UTF-8' />

============================================================

<Connector port="9009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="9443" URIEncoding='UTF-8'/>

5.运行测试。

补充:如果想只运行一个tomcat,可以通过配置多个Service来完成。

假设F:\Root为根目录,test为web应用目录

把下面的代码添加到server.xml的Server节点之后

<Service name="Root">

<Connector port="8888" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

<Connector port="9999" protocol="AJP/1.3" redirectPort="8444" />

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

<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>

<Host name="localhost" appBase="F:\Root" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">

<Context do