下面将简单总结一下如何在同一台服务器上部署多个tomcat服务。
我知道的总共有如下两种方法:其中a也就是单一tomcat的话,如果启动或者停止服务的话,所有的项目都会受影响。b方法的话彼此互不影响,就是麻烦些,大家可以根据自己情况选择方案。
a. 单一tomcat,web项目部署在一个tomcat下
b. 多tomcat,web项目分别部署在不同tomcat下
一、单一tomcat方案
1、 Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。所以可以将程序打包成一个 war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是将一个web程序的所有内容进行压缩得到。具体如何打包,可以使用许多开发工具的IDE环境,如Eclipse等。也可以用 cmd 命令:jar -cvf mywar.war myweb
webapps这个默认的应用目录也是可以改变。打开Tomcat的conf目录下的server.xml文件,找到下面内容,将appBase修改即可。
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
```
2、在server.xml中指定
在Tomcat的配置文件中,一个Web应用就是一个特定的Context,可以通过在server.xml中新建Context里部署一个JSP应用程序。打开server.xml文件,在Host标签内建一个Context,内容如下。
在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加:
```xml
<Context path="/hello" docBase="D:\ workspace\hello\WebRoot" debug="0" privileged="true">
</Context>
<Context path="/myapp" reloadable="true" docBase="D:\myapp" workDir="D:\myapp\work"/>
<Context path="/sms4" docBase="D:\workspace\sms4\WebRoot"/>
说明:
path是虚拟路径;
docBase 是应用程序的物理路径;
二、多tomcat方案
1、下载tomcat.zip版软件,分别解压到两个目录,如tomcat1和tomcat2;
2、tomcat1的server.xml文件的端口设置保持默认不变;
3、按照如下方法修改tomcat2的server.xml文件中3个端口:
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" />
```
8080修改为与tomcat1中不同的端口(确保设置的端口未被使用),如9090;
```xml
<Server port="8005" shutdown="SHUTDOWN" debug="0">
```
8005端口修改为与tomcat1中不同的端口(确保设置的端口未被使用),如9005;
```xml
<Connector port="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" />
```
8009端口修改为与tomcat1中不同的端口(确保设置的端口未被使用),如9009;
保存server.xml文件并关闭。
4、修改tomcat1中的服务名称以备安装;修改tomcat1中bin目录下的service.bat文件;
set SERVICE_NAME=Tomcat5H
set PR_DISPLAYNAME=Apache Tomcat1
5、修改tomcat1中的服务名称以备安装;修改tomcat2中bin目录下的service.bat文件;
set SERVICE_NAME=Tomcat5S
set PR_DISPLAYNAME=Apache Tomcat2
6、安装tomcat服务;打开命令行,切换到tomcat1的bin目录下,然后执行:service.bat install,系统会提示"The service 'Tomcat5H' has been installed."
然后将当前目录切换到tomcat1的bin目录下,同样执行:service.bat install,系统会提示"The service 'Tomcat5S' has been installed."
7、打开服务窗口,看到服务列表里显示有Apache Tomcat1和Apache Tomcat2两个服务
8、启动Apache Tomcat1和Apache Tomcat2,均可启动成功!
9、打开IE,输入http://localhost:8080 和 http://localhost:9090 ,均可可以看到tomcat首页。
至此两个tomcat服务在同一台服务器上完美运行。