根据公司开发、测试业务需要,开发团队各自使用各自的tomcat做开发。并切同一个项目的一期和二期开发的项目内容不一样,业务方面肯定有不兼容,为了保证一期业务的稳定,有时需要考虑往往会在一个服务器下启用多个tomcat服务,进行隔离,并且减少开发测试所需的硬件资源,现准备在一台linux中允许多个tomcat已提供开发者服务。
实验环境:
rhel6.6jdk和tomcat安装见配置管理一这里不再重复说明
一,设置环境变量
在source /home/tomcat/.bash_profile或者/etc/profile中设置环境变量
export PATH
#set java evironmentJAVA_HOME=/usr/local/tomcat_jdkPATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport JAVA_HOMEexport PATHexport CLASSPATH#第一个Tomcat,7版本CATALINA_BASE=/usr/local/tomcat7CATALINA_HOME=/usr/local/tomcat7export CATALINA_BASE CATALINA_HOME#第二个Tomcat,8版本CATALINA_8_BASE=/usr/local/tomcat8CATALINA_8_HOME=/usr/local/tomcat8export CATALINA_8_BASE CATALINA_8_HOME#第三个Tomcat,9版本CATALINA_9_BASE=/usr/local/tomcat9CATALINA_9_HOME=/usr/local/tomcat9export CATALINA_9_BASE CATALINA_9_HOME#第一个Tomcat路径TOMCAT_HOME=/usr/local/tomcat8export TOMCAT_HOME#第二个Tomcat路径TOMCAT_2_HOME=/usr/local/tomcat8export TOMCAT_2_HOME#第三个Tomcat路径TOMCAT_9_HOME=/usr/local/tomcat9export TOMCAT_9_HOMEsource /home/tomcat/.bash_profile二、修改配置端口:
第一个tomcat解压出来不用修改,把第二个tomcat_2/conf下的server.xml打开
tomcat服务器需配置三个端口才能启动,安装时默认启用了这三个端口,当要运行多个tomcat服务时需要修改这三个端口,不能相同。修改的三个端口都不能被其它程序所占用,运行更多tomcat方法是一样的。
端口一:
修改http访问端口(默认为8080端口),配置文件为tomcat\ conf\service.xml
<Connectorport="8080"protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <!-- A"Connector" using the shared thread pool--> <!-- <Connectorexecutor="tomcatThreadPool" port="8080"protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
端口二:
修改Shutdown远程停服务端口(默认为8005端口) <Serverport="8005" shutdown="SHUTDOWN">
端口三:
修改AJP端口(默认为8009端口) <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3"redirectPort="8443" />
注意要把端口添加到防火墙配置里面
AJP端口,即容器使用,如 APACHE能通过AJP协议访问Tomcat的8009端口,一般用nginx+tomcat或者apache+tomcat整合
AJP端口不修改有可能启动会报错,但程序可以跑起来,所以可以把AJP端口也修改了。
三、设置tomcat调用的系统环境变量
主要要点就是tomcat启动的时候会去查找tomat 的根目录,而这是通过查询系统环境变量CATALINA_HOME 以及
CATALINA_BASE 来做到的,于是我们只需要设置这两个变量即可。
现在我们把tomcat拷贝成2份,分别为 tomcat1 和 tomcat2,tomcat1我们使用之前配置好的默认配置(CATALINA_HOME 以及CATALINA_BASE 均指向 tomca1 目录),但tomcat2我们不能再使用系统上配置的这两个
变量了,那么我们就在 tomcat2的bin目录下面的 catalina.sh 临时修改设置 CATALINA_HOME 和 CATALINA_BASE
为tomcat2的根目录即可,如果再加tomcat以此类推即可。或者添加不同版本的tomcat,这里我做实验使用的tomcat的
多个版本打开catalina.sh,找到下面红字,在下面增加如下代码
# OS specific support. $var_must_ be set to either true or false.
# myself : add
export CATALINA_BASE=$CATALINA_8_BASEexport CATALINA_HOME=$CATALINA_8_HOME#设置虚拟机参数
JAVA_OPTS="-server-Xms512m-Xmx512m -Xss512K -XX:PermSize=128m -XX:MaxPermSize=256m" 四、测试由于我的虚拟机关了,具体的结果业比较的简单就不说了。查看进程是否正常启动,对应的端口是否都存在,然后测试,其实重点是环境变量设置,tomcat端口的合理规划