Linux环境下部署多台tomcat服务器,最近用到虚拟机就顺便整理一个亲测的方法,下面用虚拟机环境示范:
1、原理简述:
- 1.1 tomcat启动时会去查找tomcat的根目录,并且会通过CATALINA_BASE和CATALINA_HOME 这两个变量去查找,所以同一服务器下部署多个不同tomcat需要把tomcat根目录以及上述两个变量的值设置一下(也就是需要为每一个tomcat配置指向自己的环境变量)。
- 1.2 tomcat需配置三个端口才能启动,安装时默认配置并启用了这三个端口,所以要运行多个tomcat服务则需要修改这三个端口,否则会端口冲突。
2、准备工作:
- 2.1 在/usr/local/目录下新建两个tomcat文件夹(tomcat1、tomcat2),并放入要使用的tomcat的tar包(如:apache-tomcat-8.5.6.tar.gz ),使用 ‘tar -zxvf tomcat的tar路径’ 命令解压;
3、开始配置:
-
1、修改/ect/profile文件(注意:是根目录下的etc ,cd /etc/profile)
cd /etc ll vi /etc/profile 按o或者i添加如下: ####第一个Tomcat#### export CATALINA_BASE=/usr/local/tomcat1/apache-tomcat-8.5.6 export CATALINA_HOME=/usr/local/tomcat1/apache-tomcat-8.5.6 export TOMCAT_HOME=/usr/local/tomcat1/apache-tomcat-8.5.6 ####第二个Tomcat#### export CATALINA_BASE=/usr/local/tomcat2/apache-tomcat-8.5.6 export CATALINA_HOME=/usr/local/tomcat2/apache-tomcat-8.5.6 export TOMCAT_HOME=/usr/local/tomcat2/apache-tomcat-8.5.6 按ESC 输入 ::wq(注意是:wq) 输入source /etc/profile使其生效。
-
2、修改其他tomcat(除了第一个tomcat1)根目录bin下的catalina.sh文件
具体操作是切换到tomcat2的bin目录下,vim catalina.sh,找到下面的注释代码# OS specific support. $var _must_ be set to either true or false.
并在上述代码下面添加以下代码,目的是为了tomcat2启动的时候能通过该文件的里的$CATALINA_2_BASE 和 $CATALINA_2_HOME找到/etc/profile配置文件里我们前一步配好的具体路径,完成tomcat2的启动过程。
# myself : add export CATALINA_BASE=$CATALINA_2_BASE export CATALINA_HOME=$CATALINA_2_HOME
如果有多个tomcat,修改方法如上方式继续添加。
-
-
3、将server.xml中的三个端口都改大一些
3.1 http访问端口(默认为8080端口): <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 3.2 监听tomcat关闭的端口(默认为8005): <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> 3.3 负责接收其他http服务器的请求端口(默认为8009): <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
-
4、保存并重启这两台tomcat进行访问。
注意:上述是在Linux虚拟机中操作,不存在“云服务器端口未开放等安全问题”,如果有问题请执行看配置是否正确,比如目录是否对应等;