目录
前言
我们知道tomcat当一个进程的线程超过500个的话,那么这个进程的运行效率会变得很低。因为一个进程产生过多的线程,CPU资源会浪费在线程间切换过程当中。但当服务器配置很高的情况下,如:32G内存,16核的CPU。这样一台高配的机器上只装一个Tomcat实例,会有点浪费。其实我们可以根据服务器的硬件配置,配置多个Tomcat实例,充分利用硬件的资源。你第一时间可能会想到,直接下载多份Tomcat安装包,直接解压,改下端口跑起来不就可以了? 这样也是可以的,但不好维护。假设你在一台机器上安装了5个Tomcat实例,日后要升级Tomcat时,你需要将新版本的tomcat复制并覆盖掉旧的5个tomcat安装程序和配置,所以还是挺麻烦的。下面我们来实验下多个tomcat实例共用一个安装包。
安装配置
1.环境说明
JAVA环境: java version "1.8.0_20" Tomcat版本:tomcat-8.5.54 服务器:centos 7.9 IP:10.10.10.110
2.安装java环境
压缩包安装点这里 ~> 这只是另一种配置java环境方法供大家参考
[root@hya ~]# rpm -ivh jdk-8u20-linux-x64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:jdk1.8.0_20-2000:1.8.0_20-fcs ################################# [100%]
[root@hya ~]# java -version
java version "1.8.0_20"
3.安装Tomcat
[root@hya ~]# mkdir /usr/local/tomcat_all #创建安装目录
[root@hya ~]# mkdir -p /usr/local/tomcats/tomcat01 #创建两个实例的目录
[root@hya ~]# mkdir -p /usr/local/tomcats/tomcat02
[root@hya ~]# tar -xzf apache-tomcat-8.5.54_.tar.gz #解压包
[root@hya ~]# mv apache-tomcat-8.5.54/* /usr/local/tomcat_all/ #移动解压后的配置到之前创建好的安装目录
[root@hya ~]# cp -r /usr/local/tomcat_all/conf/ /usr/local/tomcats/tomcat01/
[root@hya ~]# cp -r /usr/local/tomcat_all/conf/ /usr/local/tomcats/tomcat02/
4.修改tomcat配置文件
#修改两个实例中server.xml中三个端口Server、HTTP、AJP,其目的是防止端口冲突导致服务无法正常启动
这里我只修改实例tomcat02中的配置,01就让它使用默认的端口就行
[root@hya ~]# vim /usr/local/tomcats/tomcat02/conf/server.xml
22 <Server port="8006" shutdown="SHUTDOWN"> #默认8005其作用负责监听关闭tomcat的请求
69 <Connector port="8081" protocol="HTTP/1.1" #默认为8080其作用于监听浏览器发送的请
117 <Connector protocol="AJP/1.3" address="::1" port="8010" #默认为8009负责与内部其它http服务通讯接口
5.创建启动脚本
[root@hya ~]# cd /usr/local/tomcats/tomcat01/
[root@hya tomcat01]# ls
[root@hya tomcat01]# mkdir bin #创建启动目录
[root@hya tomcat01]# cd bin/
[root@hya bin]# vim startup.sh
#!/bin/bash
export JRE_HOME=/usr/java/jdk1.8.0_20/jre
export CATALINA_HOME=/usr/local/tomcat_all
export CATALINA_BASE="/usr/local/tomcats/tomcat01"
export CATALINA_TMPDIR="$CATALINA_BASE/temp"
export CATALINA_PID="$CATALINA_BASE/bin/tomcat.pid"
#创建logs目录
if [ ! -d "$CATALINA_BASE/logs" ];then
mkdir $CATALINA_BASE/logs
fi
#创建temp目录
if [ ! -d "$CATALINA_BASE/temp" ];then
mkdir $CATALINA_BASE/temp
fi
# 调用tomcat启动脚本
bash $CATALINA_HOME/bin/startup.sh "$@"
[root@hya bin]# chmod +x startup.sh #给脚本执行权限
[root@hya bin]# /usr/local/tomcats/tomcat01/bin/startup.sh
##tomcat02同理做即可
6.创建停止脚本
[root@hya ~]# cd /usr/local/tomcats/tomcat01/bin/
[root@hya bin]# vim shutdown.sh
#!/bin/bash
export JRE_HOME=/usr/java/jdk1.8.0_20/jre
export CATALINA_HOME=/usr/local/tomcat_all
export CATALINA_BASE="/usr/local/tomcats/tomcat01"
export CATALINA_TMPDIR="$CATALINA_BASE/temp"
export CATALINA_PID="$CATALINA_BASE/bin/tomcat.pid"
bash $CATALINA_HOME/bin/shutdown.sh "$@"
[root@hya bin]# chmod +x shutdown.sh
#同理做tomcat02即可
7.启动两个实例
[root@hya ~]# /usr/local/tomcats/tomcat02/bin/startup.sh
[root@hya ~]# /usr/local/tomcats/tomcat02/bin/startup.sh
[root@hya ~]# setenforce 0
[root@hya ~]# systemctl stop firewalld
8.测试