bin:Tomcat一些脚本存放目录,比如启动脚本startup.bat/startup.sh等
conf:Tomcat配置文件所在目录,最主要的就是server.xml与web.xml
lib:主要存放Tomcat依赖包
logs:Tomcat日志所在目录。以为catalina、host-manager等开头日志
temp:存放Tomcat运行时的临时文件,通常放一些缓存文件,一般不要删除
webapps:应用部署所在目录,就是在这里存放我们需要部署的文件目录、WAR包
work:存放由JSP文件生成的Servlet
RUNNING.txt:运行说明,必需的一些环境信息
NOTICE:通知信息,软件的版权信息等
RELEASE-NOTES:发布说明,比如版本升级的功能说明
LICENSE:版权许可证,软件版权信息
CATALINA_BASE指的是Tomcat的实例所在目录,Tomcat的实例由除了bin、lib外的目录组成
两者的对比图如下一目了然,那么接下来配置多实例,也只需要Copy相应的目录组成新的Tomcat实例即可。
copy: conf webapps work 到一个新的web站点根目录下
Tomcat的配置需要分为:JVM配置、服务器配置、Web应用配置、Tomcat管理配置四个方面(其中JVM的配置一般在catalina.sh/catalina.bat中配置,这里不做介绍),这里只做简单的介绍,不会具体介绍Tomcat配置
1)服务器配置
服务器配置主要集中于$CATALINA_HOME/conf下的catalina.policy、catalina.properties、context.xml、server.xml、tomcat-users.xml、web.xml文件。
2)Web应用配置
web.xml是Web应用的部署描述文件,它支持的元素及属性来自于Servlet规范定义。在Tomcat中,Web应用的部署描述信息包括$CATALINA_BASE/conf/web.xml中的默认配置。Tomcat的默认配置比Web应用定制配置负责很多,如果是完全基于JSP的Web应用不需要添加任何定制配置。主要包括ServletContext的初始化参数、会话配置、Filter定义与映射等
3)Tomcat管理配置
主要是针对host-manager 与manager两个功能进行配置,在Tomcat中我们可以针对虚拟主机进行配置,也可以对我们的Web应用进行管理。
为了运行多个tomcat,添加一个tomcat在默认端口的基础上加100,第二个tomcat在默认端口上加200,依次类推。一台服务器上端口不能重复,否则会报错。
8005
shutdown端口,默认8005,主要负责启动关闭。
<Server port="8105" shutdown="SHUTDOWN">
8009
ajp端口,默认8009,主要负责通过ajp均衡 (常用于apache和tomcat整合)
<Connector port="8109" protocol="AJP/1.3" redirectPort="8443" />
8080http端口,默认8080,主要通过web页面直接访问(nginx+tomcata整合),编码UTF-8
<Connector port="8180" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
对一个Tomcat,可以配置多台虚拟主机,简单来说,就是让一台服务器可以对应多个主机名,这在Tomcat中称为Host,要求每个Host的Name必须唯一。
编辑配置文件
vim $CATALINA_HOME/conf/server.xml
添加如下内容
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
</Host>
说明
在一个Host上,可以部署多个应用。每个应用都有不同的Context Path,Context Path会出现在用户访问该应用的URL中,如下所示:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context docBase="ROOT" path="/admin" reloadable="true"></Context>
<Context docBase="xxx-web" path="" reloadable="true"></Context>
<Context docBase="/root/app/www_xxx" path="/xxx" reloadable="false" />
</Host>
启动脚本
#!/bin/sh
# tomcat实例目录
export CATALINA_BASE="/home/wwwroot/web目录"
# tomcat安装目录
export CATALINA_HOME="/opt/apache-tomcat-9.0.34"
export JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
# 可选
cd ${CATALINA_HOME}
./bin/catalina.sh start
停止脚本
#!/bin/bash
export CATALINA_HOME=/opt/apache-tomcat-9.0.34 #tomcat 安装目录
export CATALINA_BASE=/home/wwwroot/web目录 # 指的是实例名,如果只有一个就和home变量一样
cd ${CATALINA_HOME}
./bin/catalina.sh stop
另外一种可以通过传入启动目录的脚本
#启动脚本
#dome
#startup.sh /home/wwwroot/web目录
# 指定CATALINA_HOME
export CATALINA_HOME=/home/service/apache-tomcat-9.0.34
# 通过参数的形式输入tomcat实例路径
export CATALINA_BASE=${1%/}
echo $CATALINA_BASE
# 找到tomcat实例的进程ID
TOMCAT_ID=`ps aux |grep "java"|grep "Dcatalina.base=$CATALINA_BASE "|grep -v "grep"|awk '{ print $2}'`
if [ -n "$TOMCAT_ID" ] ; then
echo "tomcat(${TOMCAT_ITOMCAT_ID}) is running now , please shutdown it!";
exit 2;
fi
TOMCAT_START_LOG=`$CATALINA_HOME/bin/startup.sh`
if [ "$?" = "0" ]; then
echo "$0 ${1%/} start succeed"
else
echo "$0 ${1%/} start failed"
echo $TOMCAT_START_LOG
fi
#停止服务的脚本
#demo
#shutdown.sh /home/wwwroot/web目录
export CATALINA_HOME=/home/service/apache-tomcat-9.0.34
export CATALINA_BASE=${1%/}
echo $CATALINA_BASE
TOMCAT_ID=`ps aux |grep "java"|grep "[D]catalina.base=$CATALINA_BASE "|awk '{ print $2}'`
if [ -n "$TOMCAT_ID" ] ; then
TOMCAT_STOP_LOG=`$CATALINA_HOME/bin/shutdown.sh`
else
echo "Tomcat instance not found : ${1%/}"
exit
fi
if [ "$?" = "0" ]; then
echo "$0 ${1%/} stop succeed"
else
echo "$0 ${1%/} stop failed"
echo $TOMCAT_STOP_LOG
fi
扩展阅读:liunx下java和net的启动脚本
本文链接:https://blog.nnwk.net/article/1539
有问题请留言。版权所有,转载请在显眼位置处保留文章出处,并留下原文连接
Leave your question and I'll get back to you as soon as I see it. All rights reserved. Please keep the source and links
友情链接:
子卿全栈
全部评论