使用一个tomcat,借助-config配置,启动多个jvm

效果和多个tomcat一样,但是可以所有应用能够统一环境,减少tomcat数量,配置方便。目前本人只知道这些好处,剩下的还在研究当中。

1. 创建初始化脚本文件

#!bin/sh
# 创建的tomcat地址  为了方便管理统一放在 tomcat下  参数 1 为项目名称
TOMCAT_DIR=/tomcat/$1
# 该项目启动时 tomcat 所使用的端口号
TOMCAT_PORT=$2
# 判断 上面两个变量是否为空,如果有一个为空,则显示提示,并且退出脚本
if [ ! -n "$TOMCAT_DIR" ] || [ ! -n "$TOMCAT_PORT" ]; then
  echo "usage : $0 project_name tomcat_rank"
  exit 0
fi
# 判断该目录是否存在,如果存在,说明已经被创建过,直接退出脚本
if [ -d "$TOMCAT_DIR" ]; then
  echo "$TOMCAT_DIR is already exists!"
  exit 0
fi
# 根据tomcat本身的目录,创建相对应的文件夹
mkdir $TOMCAT_DIR/{work,temp,conf,logs,webapps} -p
# 将tomcat 下的配置文件拷贝一份到新创建的文件夹中
cp -a /app/apache-tomcat-8.5.14/conf $TOMCAT_DIR
# 将定制的 tomcat 管理脚本复制到新建的文件夹下
cp -a /app/shell/init/service.sh $TOMCAT_DIR
# 修改配置文件,将对应的端口号应用到对应的项目
sed -i 22s@8005@80${TOMCAT_PORT}5@ $TOMCAT_DIR/conf/server.xml # 修改tomcat关闭端口
sed -i 69s@8080@808${TOMCAT_PORT}@ $TOMCAT_DIR/conf/server.xml # 修改Http监听端口
sed -i 116s@8009@80${TOMCAT_PORT}9@ $TOMCAT_DIR/conf/server.xml # 修改AJP端口
#sed -i '148s@appBase="webapps"@appBase="/data/www"@' $TOMCAT_DIR/conf/server.xml #统一web应用程序的路径
#sed -i '149s@autoDeploy="true"@autoDeploy="false"@' $TOMCAT_DIR/conf/server.xml #关闭自动部署 
#sed -i '149a <Context path="" docBase="/data/www/some.war" />' $TOMCAT_DIR/conf/server.xml #配置Context信息,指向some.war的路径

2. 创建对应的tomcat操作脚本

#!/bin/sh

CUR_DIR=`dirname $BASH_SOURCE`
export JAVA_HOME="/app/jdk1.8.0_65"
export CATALINA_BASE=`readlink -f $CUR_DIR`
export CATALINA_HOME="/app/apache-tomcat-8.5.14"

case $1 in
 start)
 [ -f $CATALINA_HOME/bin/startup.sh ] && $CATALINA_HOME/bin/startup.sh -config $CATALINA_BASE/conf/server.xml
 ;;
 stop)
 [ -f $CATALINA_HOME/bin/shutdown.sh ] && $CATALINA_HOME/bin/shutdown.sh -config $CATALINA_BASE/conf/server.xml
 ;;
 restart)
 [ -f $CATALINA_HOME/bin/shutdown.sh ] && $CATALINA_HOME/bin/shutdown.sh -config $CATALINA_BASE/conf/server.xml && \
 [ -f $CATALINA_HOME/bin/startup.sh ] && $CATALINA_HOME/bin/startup.sh -config $CATALINA_BASE/conf/server.xml
 ;;
 *)
 echo "usage : $0 { start | stop | restart }"
 exit 1;
 ;;
esac

exit 0

restart.sh

#!bash/sh
PROJECT=$1
TOMCAT_DIR=/app/tomcat-$PROJECT
cd $TOMCAT_DIR
echo "cd $TOMCAT_DIR"

pid=`ps -ef |grep java |grep $TOMCAT_DIR|awk '{print $2}'`
echo $pid

kill -9 $pid
echo "kill tomcat done"

rm -rf ./webapps/*
\cp -f /app/war/$PROJECT*.war ./webapps/
echo "copy $1 war to webapps done"

sh service.sh start
echo "restart tomcat success"

# linux  tomcat 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×