怎样在同一系统中启动多个TOMCAT
 
原因:民爆枪支等其他系统部署在同一个TOMCAT中,如果某一个系统崩溃可能会同时使用其他系统了不能正常工作,因为它们运行在同一个JVM上的。这就需要在同一服务器中安装多个TOMCAT来运行不同的WEB系统。网上搜索了很多文章,但讲得不是很全面,经过自己反复在WINDOWSLINUX下试验,再加上网上搜索的相关文档,总结如下:(JDK的相关环境变量设置在此不多说,本文中都假设你已设置好了JDK的环境变量)
一、  WINDOWS中启动多个TOMCAT(以三个为例)。
方法一
1、 使用压缩版的TOMCAT,把他分别解压到不同的目录中,如:
D:\user1\tomcat5.5
D:\user2\tomcat5.5
D:\user3\tomcat5.5
 
2、修改各目录中tomcat5.5\conf下的server.xml
修改<Server port="8005" shutdown="SHUTDOWN">8005为其他端口
修改<Connector port="8080" maxHttpHeaderSize="8192"8080为其他端口
修改<Connector port="8009"8009为其他端口
 
如我把d:\user1\tomcat5.5\conf\server.xml中以上的三个port 分别800180108011;把d:\user2\tomcat5.5\conf\server.xml中的三个port 分别设为800280208012;把d:\user3\tomcat5.5\conf\server.xml中的三个port分别设为800380308013
3、 直接运行各目录中tomcat5.5\bin\startup.bat
此种方法设置简单,缺点是会在桌面打开很多窗口,且一不小心就会把窗口关闭,造成TOMCAT服务停止。为了解决这种不足可以把三个TOMCAT设为系统服务。
 
4、 编写并执行InstallServiceu.bat批处理文件。文件内容如下:
rem安装tomcatuser1服务
set CATALINA_BASE=d:\user1\tomcat5.5
set CATALINA_HOME=d:\user1\tomcat5.5
call d:\user1\tomcat5.5\bin\service.bat install tomcatuser1
 
rem安装tomcatuser2服务
set CATALINA_BASE=d:\user2\tomcat5.5
set CATALINA_HOME=d:\user2\tomcat5.5
call d:\user2\tomcat5.5\bin\service.bat install tomcatuser2
 
rem安装tomcatuser3服务
set CATALINA_BASE=d:\user3\tomcat5.5
set CATALINA_HOME=d:\user3\tomcat5.5
call d:\user3\tomcat5.5\bin\service.bat install tomcatuser3
执行以上批处理,系统增加了一个三个系统服务,如果你的系统中已安装了一个tomcatwindows 安装版,系统中将还有一个apache tomcat的服务。如图:
5、到此,可以使用两种方式来启动TOMCAT,一是前面说的直接运行各目录中
tomcat5.5\bin\startup.bat。二是在WINDOWS的服务管理中启动这几个服务,或把服务设为自动,让他随WINDOWS启动而自动启动。
    6、虽然我们可以通过以上的方式运行TOMCAT服务,但我们不能直接运行tomcat5.exetomcat5w.exe。原因是这两个程序只查找一个tomcat5的服务(显示为:Apache Tomcat),按这个服务中的设置去运行。
 
方法二(此方法本来不想在这里说的,但网上介绍的比较多,但我认为有了方法一,就不需要方式二,因为设置比较复杂,目前我还没发现这样设置比上面的方法有其他优点,但在LINUX中的单用户模式下,还必须这样设置)
1、    使用压缩版的TOMCAT,把他分别解压到不同的目录中,如:
D:\user1\tomcat5.5
D:\user2\tomcat5.5
D:\user3\tomcat5.5
2、设置WINDOWS的环境变量:
CATALINA_BASE1=D:\USER1\tomcat5.5.25
CATALINA_HOME1=D:\USER1\tomcat5.5.25
CATALINA_BASE2=D:\USER2\tomcat5.5.25
CATALINA_HOME2=D:\USER2\tomcat5.5.25
CATALINA_BASE2=D:\USER3\tomcat5.5.25
CATALINA_HOME2=D:\USER3\tomcat5.5.25
PATH= D:\USER1\tomcat5.5.25\bin;
D:\USER1\tomcat5.5.25\bin; D:\USER1\tomcat5.5.25\bin;$PATH
3、修改三个TOMCAT目录中catalina.batstartup.bat文件
把其中的内容CATALINA_BASE分别改为:CATALINA_BASE1CATALINA_BASE2CATALINA_BASE3CATALINA_HOME分别改为CATALINA_HOME1CATALINA_HOME3CATALINA_HOME3
如我把D:\user1\tomcat5.5\bin\目录下的catalina.batstartup.bat中的CATALINA_BASE改为CATALINA_BASE1CATALINA_HOME改为CATALINA_HOME1
D:\user2\tomcat5.5\bin\目录下的catalina.batstartup.bat中的CATALINA_BASE改为CATALINA_BASE2CATALINA_HOME改为CATALINA_HOME2
D:\user3\tomcat5.5\bin\目录下的catalina.batstartup.bat中的CATALINA_BASE改为CATALINA_BASE3CATALINA_HOME改为CATALINA_HOME3
    4、现在直接运行 startup.bat
 
 
1、   LINUX中启动多个TOMCAT。(同样以三个为例)
方法一(单用户方式)
LINUX中单用户模式下启动多个TOMCAT,和在WINDOWS中启多个TOMCAT的第二种方法类似。大家可以试试。我重点介绍方法二。
方法二(多用户方式)
最后介绍一种我原创的在LINUX中启动多个TOMCAT的方法,此方法是我借鉴以上几种方法总结出来的。
1、建立LINUX用户和组
Groupadd tomcat
Useradd user1 -g tomcat
Useradd user2 -g tomcat
Useradd user3 -g tomcat
 
2、解压tar包的TOMCAT到用户主目录中,目录名统一定为TOMCAT5.5。目录结构如下:
/home/user1/tomcat5.5/
/home/user2/tomcat5.5/
/home/user3/tomcat5.5/
 
3、修改每个用户的配置文件(用户目录下的“.bash_profile“)加入以下内容。
export CATALINA_BASE=/home/username”/tomcat5.5
export CATALINA_HOME=/home/username”/tomcat5.5
export PATH=.:$CATALINA_HOME/bin:$PATH
 
注:把“username”替换成“user1“user2”“user3”
 
4、修改各TOMCAT中的“server.xml”文件。
修改<Server port="8005" shutdown="SHUTDOWN">8005为其他端口
修改<Connector port="8040" maxHttpHeaderSize="8192"8080为其他端口
修改<Connector port="8009"8009为其他端口
如我把d:\user1\tomcat5.5\conf\server.xml中以上的三个port 分别800180108011;把d:\user2\tomcat5.5\conf\server.xml中的三个port 分别设为800280208012;把d:\user3\tomcat5.5\conf\server.xml中的三个port分别设为800380308013
5、为了方便启动TOMCAT,在/usr/local/bin目录下建立两个shell脚本文件,tuptdown
tup 用来启动TOMCAT
#!/bin/sh
cd ~
cd tomcat5.5.25/bin
sh startup.sh
 
tdown 用来关闭TOMCAT
#!/bin/sh
cd ~
cd tomcat5.5.25/bin
sh shutdown.sh
 
 
 
 
 
 
 
 
这样user1-3不管在什么目录下,都可以使用以上两个命令来启动、关闭TOMCAT。他们每个人都可以启动关闭自己的TOMCAT,但不能关闭其他用户的TOMCAT,这样也十分安全。
总结:WINDOWS下方式一简单方便实用。LINUX下方法二,简单方便安全,此方法是我最喜欢的方法,也是我认为最好、最安全的方法。