tomcat
tomcat是Apache软件基金会项目中的一个核心项目由 Apache、Sun 和其他一些公司及个人共同开发而成。tomcat 是 Java 语言开发的,Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器.
tomcat的组成
tomcat
用于支持Java Servlet和JSP。它是一个重要的Web应用程序服务器,具有模块化的架构,以下是Tomcat的主要组成部分:
-
Catalina Servlet容器
: Tomcat的核心组件之一是Catalina,它是一个Servlet容器,负责处理HTTP请求和响应。Catalina实现了Servlet规范,并提供了一个运行环境,让开发者能够部署和运行Java Web应用程序。 -
Coyote Connector: Tomcat使用Coyote Connector来处理网络通信。它支持HTTP、HTTPS和AJP(Apache JServ Protocol)等协议,允许Tomcat与客户端(通常是浏览器)和其他Web服务器进行通信。这个组件是Tomcat的入口点,它接受来自客户端的请求,并将它们传递给Catalina进行处理。
-
Jasper JSP引擎
: Jasper是Tomcat的JSP引擎,用于编译和执行JSP页面。当浏览器请求JSP页面时,Tomcat会使用Jasper将JSP代码转换为Servlet,并最终返回HTML给客户端。这使得动态Web页面的开发变得更加简单和高效。 -
Web应用程序目录结构
: Tomcat的Web应用程序是以目录结构的形式组织的,通常位于Tomcat安装目录下的webapps文件夹中。每个Web应用程序都有自己的目录,包括WEB-INF文件夹,其中包含了web.xml配置文件、类文件和其他资源。这种结构使得Web应用程序的部署和管理变得非常方便。 -
Valve和Realm: Tomcat允许开发者通过Valve和Realm来扩展其功能。Valve是一个拦截器,用于在请求和响应之间执行自定义处理,例如身份验证、日志记录等。Realm用于定义用户和角色的验证和授权策略,可以与不同的身份验证机制集成。
-
Manager应用程序: Tomcat提供了一个名为Manager的Web应用程序,用于管理和监控正在运行的Web应用程序。通过Manager应用程序,管理员可以部署、停止、重新启动和查看Web应用程序的状态。
-
日志记录: Tomcat还具备强大的日志记录功能,可以记录请求、错误、访问日志等信息,有助于开发者和管理员追踪和调试问题。
综上,Apache Tomcat
是一个由多个组件组成的Web应用程序服务器,其中最重要的构成部分是Web 容器
、Servlet 容器
、JSP 引擎
TOMCAT的安装
1、配置JAVA环境
查看JAVA版本
java -version
下图可知我JAVA版本是1.8.0_131
更换JAVA版本
下载JAVA你想安装的rpm安装包如jdk-8u201-linux-x64.rpm
rpm -i jdk-8u201-linux-x64.rpm
查看JAVA路径
rpm -qpc jdk-8u201-linux-x64.rpm
路径是/usr/java/jdk1.8.0_201-amd64/
vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
刷新配置
source /etc/profile.d/java.sh
查看版本
java -version
升级版本成功
部署TomCat
下载TomCat安装包可以去官网下载,
我在这里下载了
apache-tomcat-9.0.16.tar.gz
解归档
tar xvf apache-tomcat-9.0.16.tar.gz
启动TOMCAT
进入 /apache-tomcat-9.0.16/bin
文件夹
运行启动脚本
./startup.sh
查看是否启动成功
ss -natp |grep 8080
可以看见8080端口以开启,tomcat在运行
访问TOMCAT网站
tomcat已经启动
配置TOMCAT管理文件
vim /usr/lib/systemd/system/tomcat.service
以我的安装路径为例子,配置
[Unit]
Description=Tomcat Server
Wants=network-online.target
After=network.target[Service]
Type=forking
Environment="JAVA_HOME=/usr/java/jdk1.8.0_201-amd64"
Environment="PATH=$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
Environment="CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"
ExecStart=/root/apache-tomcat-9.0.16/bin/startup.sh
ExecStop=/root/apache-tomcat-9.0.16/bin/shutdown.sh
Restart=on-failure[Install]
WantedBy=multi-user.target
刷新配置文件
systemctl daemon-reload
这样就可以使用systemctl命令来管理tomcat程序了
tomcat的多实例部署
1、使用
cp -a /root/apache-tomcat-9.0.16 /root/tomcat1
cp -a /root/apache-tomcat-9.0.16 /root/tomcat2
复制N个tomcat N=你需要部署的实例数量
2、配置 tomcat 环境变量
vim /etc/profile.d/tomcat.sh
以我的为例
#tomcat1
#tomcat1
export CATALINA_HOME1=/root/tomcat1
export CATALINA_BASE1=/root/tomcat1
export TOMCAT_HOME1=/root/tomcat1
#tomcat2
export CATALINA_HOME2=/root/tomcat2
export CATALINA_BASE2=/root/tomcat2
export TOMCAT_HOME2=/root/tomcat2
~
source /etc/profile.d/tomcat.sh
修改 tomcat1 和tomcat2的端口号
例如tomcat1
修改/root/tomcat1/conf/server.xml文件
vim /root/tomcat1/conf/server.xml
修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量
修改startup.sh
修改shutdown.sh
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
##添加以下内容
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1
使用启动脚本启动tomcat
启动成功
tomcat 8080端口和8081端口是两个不同的程序,设置成功。