以前要配置多个tomcat时,会解压多个tomcat程序,修改端口后分别启动,相对会占用较多的存储空间。
本文的配置方式是实现在只用一个tomcat程序的情况下,启动多个实例。
1、原理:
在tomcat的安装目录中,所有实例共享的文件夹只有lib、bin两个文件夹,其余的文件夹每个实例分别持有一份。由于一般只有一个实例,所以这些文件夹放在了同一目录下,目录结构如下:
若要实现多实例,目录结构如下所示:
上图中定义了2个实例。
2、步骤二:在instance1和instance2下分别增加一个自定义的startup.bat文件,内容如下
@echo off @echo 删除缓存 rmdir /S/Q %CD%/work SET CATALINA_BASE=%CD% cd ../../bin catalina.bat start
前提是已经定义了系统变量JAVA_HOME,并且已经添加到PATH中
此处可根据需要设置CATALINA_OPTS和JAVA_OPTS环境变量。
3、注意事项:
为了保证端口不冲突,需要分别设置各个实例下conf/server.xml中的端口,避免重复,否则启动多个时会出现jvm_bind异常。
4、启动:
分别双击instances/instance1/startup.bat和instances/instance1/startup.bat,就启动了2个实例,由于我设定的端口分别为8080和8081,
分别访问http://localhost:8080和http://localhost:8081即可分别访问,对应的部署不作赘述。