CentOS7 Linux 安装Tomcat,同一个软件包启动多个服务实例怎么处理?
CentOS 7 Linux 安装Tomcat,同一个软件包启动多个服务实例怎么处理?
此文章主要介绍一下同一个tomcat程序包启动多个服务实例,虽然在很多时候有些程序员感觉这么做很无聊,但对我这种很会节省磁盘空间的人来说,此方法还是很不错的,而且通过这种方法,升级Tomcat版本也是非常容易的。
话不多说直接上操作。
安装Tomcat
此过程不介绍,大家请看之前的文章吧。
CentOS 7 Linux 安装Tomcat 8(咋个办呢 zgbn)
CentOS 7 Linux 安装Tomcat 8 - JVM内存优化(咋个办呢 zgbn)
配置多个服务实例
闲来看一下配置好的目录,如下图。
Tomcat程序包创建软连接
Tomcat安装完成并优化配置后,方便操作配置,为原来程序包创建一个软连接目录。
[root@iZ28sn apache]# ln -s tomcat-8.5.27/ tomcat [root@iZ28sn apache]# ll total 12 lrwxrwxrwx 1 root root 14 Feb 9 19:22 tomcat -> tomcat-8.5.27/ drwxr-xr-x 9 www www 4096 Jan 31 01:23 tomcat-8.5.27
创建多服务实例配置文件
通过安装完成Tomcat程序包进行copy动作,重新命名为tomcat-8180,tomcat-8280,之所以这么做,主要是方便我管理,这里名字代表的意思为:
tomcat-8.5.27:此tomcat服务将使用默认的8080端口对外发布服务(我个人不会开启此服务);
tomcat-8180:此tomcat服务将使用8180端口对外发布服务;
tomcat-8280:此tomcat服务将使用8280端口对外发布服务;
命令:
[root@iZ28sn apache]# cp -r tomcat-8.5.27/ tomcat-8180 [root@iZ28sn apache]# cp -r tomcat-8.5.27/ tomcat-8280
进入tomcat-8180目录下,除下面列出的文件夹外,其他的文件夹全部可以删除掉。
drwxr-x--- 2 www www 4096 Feb 9 19:12 bin drwx------ 3 www www 4096 Feb 1 01:06 conf drwxr-x--- 2 www www 4096 Feb 9 19:08 logs drwxr-x--- 2 www www 4096 Feb 1 01:03 temp drwxr-x--- 2 www www 4096 Feb 1 01:01 webapps drwxr-x--- 2 www www 4096 Feb 1 01:01 work
进入/tomcat-8180/bin目录下,删除所有文件。
[root@iZ28sn tomcat-8180]# cd bin/ [root@iZ28sn bin]# rm -rf * [root@iZ28sn bin]# cd ..
分别进入/tomcat-8180/logs、/tomcat-8180/temp、/tomcat-8180/webapps、/tomcat-8180/work目录下,删除所有文件。
只保留/tomcat-8180/conf目录下的配置文件,并修改配置文件中端口号,我修改的比较直接,我的规则就是按着目录的名字中的8180,将默认的8080发布端口修改为8180,其他的服务端口端部将第二位修改成_1__即可。
[root@iZ28sn conf]# vim server.xml
编写多服务实例启动脚本
其实同一个Tomcat程序包,启动多个服务实例,其原理就是通过启动脚本,来控制tomcat启动的时候加载不同的配置文件。
进入/tomcat-8180/bin目录下,创建脚本文件,并赋予可执行权限。
[root@iZ28sn bin]# vim startup.sh [root@iZ28sn bin]# chmod +x startup.sh
脚本内容
#!/bin/bash # 这里执行的是软连接地址,方便以后更换tomcat发行版本 export CATALINA_HOME=/opt/apache/tomcat export CATALINA_BASE="/opt/apache/tomcat-8180" export CATALINA_TMPDIR="$CATALINA_BASE/temp" export CATALINA_PID="$CATALINA_BASE/logs/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启动脚本 case $1 in start|stop|run) bash $CATALINA_HOME/bin/daemon.sh $1 echo "" echo "CATALINA_HOME=$CATALINA_HOME" echo "CATALINA_BASE=$CATALINA_BASE" echo "CATALINA_TMPDIR=$CATALINA_TMPDIR" echo "CATALINA_PID=$CATALINA_PID" echo "Action $CATALINA_BASE $1 end ......" echo "" ;; *) echo "usage: [start | stop | run]" ;; esac
启动tomcat服务实例
启动服务,查看tomcat进程情况。
[root@iZ28sn bin]# ./startup.sh start [root@iZ28sn bin]# ps -ef | grep tomcat root 4310 1 0 19:43 ? 00:00:00 jsvc.exec -java-home /usr/lib/jvm/java-1.8.0-openjdk/jre ... -Dcatalina.base=/opt/apache/tomcat-8180 ... org.apache.catalina.startup.Bootstrap www 4311 4310 6 19:43 ? 00:00:01 jsvc.exec -java-home /usr/lib/jvm/java-1.8.0-openjdk/jre ... -Dcatalina.base=/opt/apache/tomcat-8180 ... org.apache.catalina.startup.Bootstrap root 4446 3286 0 19:43 pts/2 00:00:00 grep --color=auto tomcat [root@iZ28sn bin]#