烂泥:学习tomcat之tomcat单机多实例部署

本文由ilanniweb提供友情赞助,首发于烂泥行天下

想要获得更多的文章,可以关注我的微信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

clip_image001

通过上图,我们可以很容易的看出,我们可以安装1.6、1.7、1.8这三个版本。在此我们是以安装jdk1.7版本为例的。如下:

yum -y install java-1.7.0-openjdk

clip_image002

jdk安装完毕后,我们下面开始配置JAVA_HOME路径。

1.2 配置JAVA_HOME路径

yum安装的jdk不像源码安装的jdk那样容易配置JAVA_HOME路径,yum方式的需要通过命令一点点的去查找。

下面我们通过命令一点点的查找,如下:

which java

ll /usr/bin/java

ll /etc/alternatives/java

clip_image003

ll /usr/lib/jvm/

ll /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91.x86_64/

clip_image004

通过上图,我们可以看到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/。配置如下:

JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91.x86_64/。

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/

clip_image005

接下来,我们来下载tomcat6.0的tar.gz包,如下:

wget http://apache.opencas.org/tomcat/tomcat-6/v6.0.44/bin/apache-tomcat-6.0.44.tar.gz

clip_image006

现在我们来解压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/

clip_image007

我们再复制tomcat7070为tomcat9090作为第二个tomcat实例,如下:

cp -r tomcatserver/tomcat7070/ tomcatserver/tomcat9090

tree -L 2 tomcatserver/

clip_image008

2.2 修改tomcat配置

现在我们来修改tomcat7070实例的配置文件server.xml,在此声明,我们为了区分各个tomcat实例,tomcat7070所有监听的端口都修改为7开头的端口,工作目录修改为/data/webapps。tomcat9090所有监听的端口都修改为9开头的端口,工作目录修改为/data/webapps。如下:

vim tomcatserver/tomcat7070/conf/server.xml

clip_image009

clip_image010

clip_image011

clip_image012

端口与工作目录修改完毕后,我们来添加tomcat7070的启动脚本。

2.3 添加tomcat启动脚本

我们现在来配置tomcat7070的启动脚本,所有tomcat实例的启动脚本都是在tomcat实例的bin目录下。如下:

tree -L 3 tomcatserver/tomcat7070/

clip_image013

在上图中,我们只需要注意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

clip_image014

现在我们来编辑/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/

clip_image015

这样第一个tomcat实例就配置完毕了,第二个tomcat实例配置就比较简单了。

我们只需要按照配置tomcat7070实例,同样的方法配置tomcat9090就行了,只是每一个tomcat实例监听的端口一定要不同,工作目录可以相同。

tomcat9090实例的相关截图如下:

clip_image016

clip_image017

clip_image018

clip_image019

clip_image020

到此两个tomcat实例都已经配置完毕,现在我们来启动测试下。

三、测试tomcat单机多实例

启动实例tomcat7070,在启动之前一定要检查下,各个实例的bin目录下各个脚本是否有可执行权限,如果没有的话,一定要先给与其可执行权限。

如下:

chmod 755 –R /data/tomcatserver/tomcat7070/bin

etc/init.d/tomcat7070 start

netstat -tunlp

clip_image021

通过上图,我们可以很明显的看出tomcat7070实例已经启动了。

现在我们再来测试下tomcat9090实例,如下:

/etc/init.d/tomcat9090 start

netstat -tunlp

clip_image022

通过上图,我们可以很明显的看出tomcat9090实例也已经启动了。

通过以上两图对比,我们可以很容易的发现tomcat的单机多实例部署已经成功了。

如果我们要关闭其中一个实例的话,我们只需要执行关闭操作命令即可。在此我们以关闭tomcat9090实例为例,如下:

/etc/init.d/tomcat9090 stop

clip_image023

通过上图,我们可以很明显的看出tomcat9090已经关闭了。

注意:在此我们配置tomcat的单机多实例是把所有tomcat的工作目录都指向了/data/webapps目录,也就是说我们只需要把业务应用放到该目录下就行了,除此之外每一个tomcat实例都有自己log,并且在自己相应的目录下。

未经允许不得转载:烂泥行天下 » 烂泥:学习tomcat之tomcat单机多实例部署

赞 (18) 打赏

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

支付宝扫一扫打赏

微信扫一扫打赏