想要获得更多的文章,可以关注我的微信ilanniweb
为了有效的利用服务器的资源,我们现在需要在一台服务器上部署多个tomcat,这也就是我们经常所说的tomcat单机多实例部署。
PS:本次实验的测试OS为centos6.5 64bit。
一、配置JAVA_HOME路径
要配置JAVA_HOME路径,我们就要首先安装jdk。jdk的安装在此我们使用的是yum方式,没有使用源码方式安装。
1.1 yum安装jdk
jdk我们现在是使用的yum方式进行安装的,首先我们先来查看能够安装的jdk版本。如下:
yum search jdk
通过上图,我们可以很容易的看出,我们可以安装1.6、1.7、1.8这三个版本。在此我们是以安装jdk1.7版本为例的。如下:
yum -y install java-1.7.0-openjdk
jdk安装完毕后,我们下面开始配置JAVA_HOME路径。
1.2 配置JAVA_HOME路径
yum安装的jdk不像源码安装的jdk那样容易配置JAVA_HOME路径,yum方式的需要通过命令一点点的去查找。
下面我们通过命令一点点的查找,如下:
which java
ll /usr/bin/java
ll /etc/alternatives/java
ll /usr/lib/jvm/
ll /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91.x86_64/jre
通过上图,我们可以看到java命令的实际物理路径是/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91.x86_64/jre/bin,所以JAVA_HOME路径是/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91.x86_64/jre。配置如下:
JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91.x86_64/jre。
JAVA_HOME路径配置完毕后,现在我们来配置tomcat的多实例。
注意:该JAVA_HOME路径的配置方法,也适用于ubuntu OS。
二、配置tomcat多实例
tomcat的单机多实例配置,在此我们使用的是tomcat的源码包进行配置的,而没有通过yum方式配置tomcat的多实例。因为这样配置起来更容易,而且在此我们是以tomcat的6.0版本为例。
tomcat7.0、tomcat8.0单机多实例的配置,和tomcat6.0是一样的。
2.1 复制多个tomcat
首先创建tomcat所有实例共同的工作目录/data/webapps以及tomcat所有实例的所在目录/data/tomcatserver,如下:
mkdir -p /data/{webapps,tomcatserver}
ll /data/
接下来,我们来下载tomcat6.0的tar.gz包,如下:
wget http://apache.opencas.org/tomcat/tomcat-6/v6.0.44/bin/apache-tomcat-6.0.44.tar.gz
现在我们来解压apache-tomcat-6.0.44.tar.gz,解压到/data/tomcatserver目录下,并重命名为tomcat7070,作为第一个tomcat实例。如下:
tar -xf apache-tomcat-6.0.44.tar.gz -C tomcatserver/
mv tomcatserver/apache-tomcat-6.0.44 tomcatserver/tomcat7070
ll tomcatserver/tomcat7070/
我们再复制tomcat7070为tomcat9090作为第二个tomcat实例,如下:
cp -r tomcatserver/tomcat7070/ tomcatserver/tomcat9090
tree -L 2 tomcatserver/
2.2 修改tomcat配置
现在我们来修改tomcat7070实例的配置文件server.xml,在此声明,我们为了区分各个tomcat实例,tomcat7070所有监听的端口都修改为7开头的端口,工作目录修改为/data/webapps。tomcat9090所有监听的端口都修改为9开头的端口,工作目录修改为/data/webapps。如下:
vim tomcatserver/tomcat7070/conf/server.xml
端口与工作目录修改完毕后,我们来添加tomcat7070的启动脚本。
2.3 添加tomcat启动脚本
我们现在来配置tomcat7070的启动脚本,所有tomcat实例的启动脚本都是在tomcat实例的bin目录下。如下:
tree -L 3 tomcatserver/tomcat7070/
在上图中,我们只需要注意catalina.sh、startup.sh、shutdown.sh、version.sh这四个脚本。其实一看脚本的名字,我们就知道他们是做什么的。
startup.sh为启动tomcat脚本,shutdown.sh为关闭tomcat脚本,version.sh为查看tomcat的版本脚本。
无论是启动tomcat脚本startup.sh,还是关闭tomcat脚本shutdown.sh,最后都是调用catalina.sh脚本,也就是说,我们通过catalina.sh脚本可以启动和关闭tomcat。
注意:sh结尾的都是可以在linux OS上执行的脚本,而bat结尾的都是可以在windows OS上可以执行的脚本。
现在我们只需要把catalina.sh脚本复制到/etc/init.d/目录下,并重命名为tomcat7070,然后修改下即可。如下:
cp tomcatserver/tomcat7070/bin/catalina.sh
/etc/init.d/tomcat7070
chmod 755 /etc/init.d/tomcat7070
ll /etc/init.d/tomcat7070
现在我们来编辑/etc/init.d/tomcat7070脚本,我们需要在该文件中加入CATALINA_HOME和JAVA_HOME,如下:
vim /etc/init.d/tomcat7070
CATALINA_HOME=/data/tomcatserver/tomcat7070
JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91.x86_64/jre
这样第一个tomcat实例就配置完毕了,第二个tomcat实例配置就比较简单了。
我们只需要按照配置tomcat7070实例,同样的方法配置tomcat9090就行了,只是每一个tomcat实例监听的端口一定要不同,工作目录可以相同。
tomcat9090实例的相关截图如下:
到此两个tomcat实例都已经配置完毕,现在我们来启动测试下。
三、测试tomcat单机多实例
启动实例tomcat7070,在启动之前一定要检查下,各个实例的bin目录下各个脚本是否有可执行权限,如果没有的话,一定要先给与其可执行权限。
如下:
chmod 755 –R /data/tomcatserver/tomcat7070/bin
etc/init.d/tomcat7070 start
netstat -tunlp
通过上图,我们可以很明显的看出tomcat7070实例已经启动了。
现在我们再来测试下tomcat9090实例,如下:
/etc/init.d/tomcat9090 start
netstat -tunlp
通过上图,我们可以很明显的看出tomcat9090实例也已经启动了。
通过以上两图对比,我们可以很容易的发现tomcat的单机多实例部署已经成功了。
如果我们要关闭其中一个实例的话,我们只需要执行关闭操作命令即可。在此我们以关闭tomcat9090实例为例,如下:
/etc/init.d/tomcat9090 stop
通过上图,我们可以很明显的看出tomcat9090已经关闭了。
注意:在此我们配置tomcat的单机多实例是把所有tomcat的工作目录都指向了/data/webapps目录,也就是说我们只需要把业务应用放到该目录下就行了,除此之外每一个tomcat实例都有自己log,并且在自己相应的目录下。