Tomcat单库多实例部署
下载最新的tomcat文件,并解压,假设目录为:/home/user/apps/tomcat
bin
conf
lib
LICENSE
logs
NOTICE
RELEASE-NOTES
RUNNING.txt
temp
webapps
work
然后新建一个目录:/home/user/apps/tomcat_instances,其下结构为:
share (共享脚本) :这个下面只有一个inc.sh文件,设置一些基本的环境变量
job_server(一个tomcat实例,可以建n多个)
inc.sh
#!/bin/echo Warining,this library should be sourced! export CATALINA_HOME=/home/haozu/apps/tomcat export CATALINA_BASE=$(cd "`dirname $0`/../";pwd)
job_server 下的目录结构如下:
bin(手动创建)
conf (可以复制tomcat目录的conf),可以删除tomcat-users.xml 文件,直接将tomcat目录下的conf下的tomcat-users.xml软链过来
logs (手动创建)
temp(手动创建)
关键要处理的是bin目录下的一些文件的设置(setenv.sh,catalina.sh,inc.sh):
setenv.sh 用于tomcat启动的参数配置(当前目录下,会在tomcat启动时自动调用)
#!/bin/sh export CATALINA_OPTS="-Xmx350M -Xms350M -XX:PermSize=64M -XX:MaxPermSize=64m -XX:+UseParallelGC -Dlog4j.configuration=file:///home/www/config/java/scheduler_log4j.xml" export CATALINA_PID="$CATALINA_BASE/logs/catalina.pid"
将share目录下的inc.sh 做一个软链到当前目录(bin)下
catalina.sh
#!/bin/bash . $(cd "`dirname $0`/";pwd)/inc.sh #initial some directory logs_dir="$CATALINA_BASE/logs" tmp_dir="$CATALINA_BASE/temp" webapp_dir="$CATALINA_BASE/webapps" test ! -d "$logs_dir" && mkdir "$logs_dir" test ! -d "$tmp_dir" && mkdir "$tmp_dir" test ! -d "$webapp_dir" && mkdir "$webapp_dir" $CATALINA_HOME/bin/catalina.sh $*
设置好conf/server.xml,文件,就可以在job_server目录下的启动tomcat了:
./bin/catalina.sh start