欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-27 19:20:43
CentOS 7 Linux 安装Tomcat,同一个软件包启动多个服务实例怎么处理? 此文章主要介绍一下同一个tomcat程序包启动多个服务实例,虽然在很多时候有些程序员感觉这么做很无聊,...

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

此文章主要介绍一下同一个tomcat程序包启动多个服务实例,虽然在很多时候有些程序员感觉这么做很无聊,但对我这种很会节省磁盘空间的人来说,此方法还是很不错的,而且通过这种方法,升级Tomcat版本也是非常容易的。

话不多说直接上操作。

安装Tomcat

此过程不介绍,大家请看之前的文章吧。

CentOS 7 Linux 安装Tomcat 8(咋个办呢 zgbn)

CentOS 7 Linux 安装Tomcat 8 - JVM内存优化(咋个办呢 zgbn)

配置多个服务实例

闲来看一下配置好的目录,如下图。

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

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