一台电脑同时运行多个tomcat配置方法

时间:2022-02-04 16:56:31
同一台机器上部署多个tomcat会发现第二个tomcat启动会报错。而有些同学会想到可能是端口重复,然而,在server.xml改了端口还是发现不行。其实要想实现同一台机器部署多个tomcat,需要修改配置的地方不止一个!

 

第一个地方:

找到bin/startup.bat文件,这是tomcat的启动文件。截图如下:

一台电脑同时运行多个tomcat配置方法

在文件第一行添加如下两行:

SET JAVA_HOME=C:\software\jdk1.6.0_33 (JDK所在路径)

SET CATALINA_HOME=C:\test\tomcat2(第二个tomcat解压的路径)

例子截图如下:

一台电脑同时运行多个tomcat配置方法

 

第二个地方:

找到server.xml文件,修改以下3个地方。截图如下:

一台电脑同时运行多个tomcat配置方法

1、<Server port="8085" shutdown="SHUTDOWN">

截图如下:

一台电脑同时运行多个tomcat配置方法

2、<Connector port="8088" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

截图如下:

一台电脑同时运行多个tomcat配置方法

3、<Connector port="8089" protocol="AJP/1.3" redirectPort="18443" />

截图如下:

一台电脑同时运行多个tomcat配置方法

 

修改以上2个地方后再启动第二个服务即可。


--************************************************************************

同一端口号的多个项目部署

    添加:

[html] view plain copy
  1. <Context path="/route" reloadable="true" docBase="/home/develop/tomcat-7.0.54/flatrass"/>  
  2. <Context path="/route2" reloadable="true" docBase="/home/develop/tomcat-7.0.54/flatrasweats"/>  
通过访问: http://127.0.0.1:8080/route   http://127.0.0.1:8080/route2 对应各子的项目


对应不同端口号的多个项目部署

通过访问:http://127.0.0.1:8080/route  http://127.0.0.1:8081/route 对应各子的项目        
        打开conf文件夹server.xml文件,添加

[html] view plain copy
  1. <Context path="/route" reloadable="true" docBase="/home/develop/tomcat-7.0.54/flatrass"/>  


        在service标签下面写一个service标签。复制上面service,再修改里面的端口号为8081。添加:

[html] view plain copy
  1. <Context path="/route" reloadable="true" docBase="/home/develop/tomcat-7.0.54/flatrasweats"/>  


[html] view plain copy
  1. <?xml version='1.0' encoding='utf-8'?>  
  2.   
  3. <Server port="8054" shutdown="SHUTDOWN">  
  4.     <!-- Security listener. Documentation at /docs/config/listeners.html <Listener   
  5.         className="org.apache.catalina.security.SecurityListener" /> -->  
  6.     <!--APR library loader. Documentation at /docs/apr.html -->  
  7.     <Listener className="org.apache.catalina.core.AprLifecycleListener"  
  8.         SSLEngine="on" />  
  9.     <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->  
  10.     <Listener className="org.apache.catalina.core.JasperListener" />  
  11.     <!-- Prevent memory leaks due to use of particular java/javax APIs -->  
  12.     <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />  
  13.     <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />  
  14.     <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />  
  15.   
  16.   
  17.     <GlobalNamingResources>  
  18.   
  19.         <Resource name="UserDatabase" auth="Container"  
  20.             type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved"  
  21.             factory="org.apache.catalina.users.MemoryUserDatabaseFactory"  
  22.             pathname="conf/tomcat-users.xml" />  
  23.     </GlobalNamingResources>  
  24.   
  25.   
  26.     <Service name="Catalina">  
  27.   
  28.         <!--protocol 请使用nio2,或者apr -->  
  29.   
  30.         <Connector port="8080" protocol="HTTP/1.1"  
  31.             connectionTimeout="20000" redirectPort="9543" />  
  32.   
  33.   
  34.         <Connector port="8909" protocol="AJP/1.3" redirectPort="9543" />  
  35.   
  36.         <Engine name="Catalina" defaultHost="localhost">  
  37.   
  38.             <Realm className="org.apache.catalina.realm.LockOutRealm">  
  39.   
  40.                 <Realm className="org.apache.catalina.realm.UserDatabaseRealm"  
  41.                     resourceName="UserDatabase" />  
  42.             </Realm>  
  43.   
  44.             <Host name="localhost" appBase="webapps" unpackWARs="true"  
  45.                 autoDeploy="true">  
  46.   
  47.                 <Valve className="org.apache.catalina.valves.AccessLogValve"  
  48.                     directory="logs" prefix="localhost_access_log." suffix=".txt"  
  49.                     pattern="%h %l %u %t "%r" %s %b"/>  
  50.                 <Context path="/route" reloadable="true"  
  51.                     docBase="/home/develop/tomcat-7.0.54/flatrass" />  
  52.             </Host>  
  53.         </Engine>  
  54.     </Service>  
  55.   
  56.     <Service name="Catalina">  
  57.         <!--把port改成8081 -->  
  58.         <!--protocol 请使用nio2,或者apr -->  
  59.         <Connector port="8081" protocol="HTTP/1.1"  
  60.             connectionTimeout="20000" redirectPort="9543" />  
  61.         <Connector port="8909" protocol="AJP/1.3" redirectPort="9543" />  
  62.         <Engine name="Catalina" defaultHost="localhost">  
  63.             <Realm className="org.apache.catalina.realm.LockOutRealm">  
  64.                 <Realm className="org.apache.catalina.realm.UserDatabaseRealm"  
  65.                     resourceName="UserDatabase" />  
  66.             </Realm>  
  67.             <Host name="localhost" appBase="webapps" unpackWARs="true"  
  68.                 autoDeploy="true">  
  69.                 <Valve className="org.apache.catalina.valves.AccessLogValve"  
  70.                     directory="logs" prefix="localhost_access_log." suffix=".txt"  
  71.                     pattern="%h %l %u %t "%r" %s %b"/>  
  72.                 <Context path="/route" reloadable="true"  
  73.                     docBase="/home/develop/tomcat-7.0.54/flatrasweats" />  
  74.             </Host>  
  75.         </Engine>  
  76.     </Service>  
  77. </Server>  

Java home set :

setclasspath.sh

export JAVA_HOME=/home/qatest/jdk1.8.0_91export JRE_HOME=/home/qatest/jdk1.8.0_91/jre

web.xml的加载过程是:

context-param -> listener -> filter -> servlet
其它:
service httpd status service httpd restart lsof -i:80 chmod +x catalina.sh ps –ef|grep tomcat rm –rf file
启动tomcat #   ./startup.sh
关闭tomcat #   ./shutdown.sh
查看是否启动成功可以输入ps axuwf|grep Java,
如果出现一大堆结果,就是启动成功了.也可以netstat -lnpt,查看8088端口有没有被使用.如果被使用了,说明启动成功了.