CentOS7 Linux 安装Tomcat,同一个软件包启动多个服务实例怎么处理?,centos7tomcat


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]#

相关内容