先来了解一下CATALINA_HOME和CATALINA_BASE区别:
官方文档上的解释:
Throughout the docs, you'll notice there are numerous references to $CATALINA_HOME.
This represents the root of your Tomcat installation.
When we say, "This information can be found in your $CATALINA_HOME/README.txt file" we mean to look at the README.txt file at the root of your Tomcat install.
Optionally, Tomcat may be configured for multiple instances by defining $CATALINA_BASE for each instance.
If multiple instances are not configured, $CATALINA_BASE is the same as $CATALINA_HOME.
翻译过来就是CATALINA_HOME是Tomcat的安装目录,CATALINA_BASE是Tomcat的工作目录
你需要在一台机器上面部署多个Tomcat实例,但是你又不想创建多个Tomcat的副本,换句话说就是让这些Tomcat副本拥有自己的工作目录但是共享Tomcat的代码。共享的目录是下载tomcat文件下的bin和lib文件,而conf、logs、temp、webapps、work则是每个实体自己的。
创建多个实例:
1.文件结构:
tomcat文件下保留共有的bin和lib文件,另建instance文件夹
instance文件夹:
instance1文件夹:
2.修改每个实例的server.xml文件,修改里面的端口,让每个实例用到端口不冲突:
<Server port="8025" shutdown="SHUTDOWN">
<Connector port="8100" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8029" protocol="AJP/1.3" redirectPort="8443" />
3.每个实例文件下创建startup.bat、stop.bat文件:
实例一(instance1):
startup.bat:
SET CATALINA_BASE=%CD%
SET TITLE=instance1
cd ../../bin
catalina.bat start
stop.bat:
SET CATALINA_BASE=%CD%
SET TITLE=instance1
cd ../../bin
catalina.bat stop
实例二(instance2)内容除了SET TITLE=instance1改为SET TITLE=instance2,其他一样
4.启动:
分别双击各个实例下的startup.bat