Tomcat

本文详细介绍了Tomcat的安装过程,包括yum安装和官方二进制版的下载及配置。深入解析了Tomcat的组件结构,如Server、Service、Connector、Engine等,并阐述了它们的功能和关系。此外,文章还探讨了Tomcat的应用部署,包括JSP WebApp的目录结构、webapp的归档格式以及自动部署、手动部署和反部署的方法。
摘要由CSDN通过智能技术生成

1. Tomcat 安装

1.1 yum安装

可以使用CentOS7 yum源自带的安装。yum源中是Tomcat 7.0版本。安装完通过浏览器可以观察一下首页
#貌似CentOS8 现在还不可以
# yum install tomcat tomcat-admin-webapps tomcat-webapps
# systemctl start tomcat.service
# ss -tanl
[root@tomcat1 local]# ss -ntl
State      Recv-Q Send-Q                      Local Address:Port                                     Peer Address:Port              
LISTEN     0      50                                      *:3306                                                *:*                  
LISTEN     0      128                                     *:111                                                 *:*                  
LISTEN     0      128                                     *:22                                                  *:*                  
LISTEN     0      128                             127.0.0.1:631                                                 *:*                  
LISTEN     0      100                             127.0.0.1:25                                                  *:*                  
LISTEN     0      128                             127.0.0.1:6010                                                *:*                  
LISTEN     0      128                             127.0.0.1:6011                                                *:*                  
LISTEN     0      100                                    :::8009                                               :::*                  
LISTEN     0      128                                    :::111                                                :::*                  
LISTEN     0      100                                    :::8080                                               :::*                  
LISTEN     0      128                                    :::22                                                 :::*                  
LISTEN     0      128                                   ::1:631                                                :::*                  
LISTEN     0      100                                   ::1:25                                                 :::*                  
LISTEN     0      128                                   ::1:6010                                               :::*                  
LISTEN     0      128                                   ::1:6011                                               :::*                  
LISTEN     0      1                        ::ffff:127.0.0.1:8005                                               :::*                  

1.2 采用Apache官网下载 官方二进制版

在这里插入图片描述

# tar xf apache-tomcat-8.5.42.tar.gz -C /usr/local
# cd /usr/local
# ln -sv apache-tomcat-8.5.42/ tomcat
"tomcat" -> "apache-tomcat-8.5.42/"
# cd tomcat
# cd bin
# ./catalina.sh --help
# ./catalina.sh version
# ./catalina.sh start #./catalina.sh 可以启动停止tomcat服务
# ss -tanlp
# ./catalina.sh stop 

# ./startup.sh #启动脚本
# ./shutdown.sh #关闭脚本
# 启动身份是root
1. useradd -r tomcat #建立系统账号
2. chown -R tomcat.tomcat /usr/local/tomcat
3.  su - tomcat -c '/usr/local/tomcat/bin/catalina.sh start' # tomcat conf/server.xml中配置内容填写错误 启动时会报错
4.  ps -aux | grep tomcat
1.2.1 目录结构
目录说明
bin服务启动、停止等相关
conf配置文件
lib库目录
logs日志文件
webapps应用程序/应用部署目录
workjsp编译后的结果文件
1.2.2 配置文件
文件名说明
server.xml主配置文件
context.xml每个webapp都可以专用的配置文件,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认配置
web.xml每个webapp只有“部署”后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认部署相关的配置
tomcat-users.xml用户认证的账号和密码文件
catalina.policy当使用-security选项启动tomcat时,用于为tomcat设置安全策略
catalina.propertiesJava属性的定义文件,用于设定类加载器路径,以及一些与JVM调优相关参数
logging.properties日志系统相关的配置。log4j
1.2.3 组件分类
  • 顶级组件
    Server,代表整个Tomcat容器
  • 服务类组件
    Service,组织Engine和Connector,里面只能包含一个Engine
  • 连接器组件
    Connector,有HTTP、HTTPS、AJP协议的连接器
  • 容器类
    Engine、Host、Context都是容器类组件,可以嵌入其它组件,内部配置如何运行应用程序。
  • 内嵌类
    可以内嵌到其他组件内,valve、logger、realm、loader、manager等。以logger举例,在不同容器组件内定义。
  • 集群类组件
    listener、cluster
    上述组件构成了tomcat,如下图
    —> 图片截取于马哥教育许老师课件
    在这里插入图片描述
名称说明
ServerTomcat运行的进程实例
Connector负责客户端的HTTP、HTTPS、AJP等协议的连接。一个Connector只属于某一个Engine
Service用来组织Engine和Connector的关系
Engine响应并处理用户请求。一个引擎上可以绑定多个Connector
Host虚拟主机
Context应用的上下文,配置路径映射path => directory

AJP(Apache Jserv protocol)是一种基于TCP的二进制通讯协议。

核心组件

  • Tomcat启动一个Server进程。可以启动多个Server,但一般只启动一个
  • 创建一个Service提供服务。可以创建多个Service,但一般也只创建一个
    • 每个Service中,是Engine和其连接器Connector的关联配置
  • 可以为这个Server提供多个连接器Connector,这些Connector使用了不同的协议,绑定了不同的端口。其作用就是处理来自客户端的不同的连接请求或响应
  • Service内部还定义了Engine,引擎才是真正的处理请求的入口,其内部定义多个虚拟主机Host
    • Engine对请求头做了分析,将请求发送给相应的虚拟主机
    • 如果没有匹配,数据就发往Engine上的defaultHost缺省虚拟主机
    • Engine上的缺省虚拟主机可以修改
  • Host定义虚拟主机,虚拟主机有name名称,通过名称匹配
  • Context定义应用程序单独的路径映射和配置

2. 应用部署

2.1 Tomcat

  • Tomcat中默认网站根目录是CATALINA_BASE/webapps/
  • 在Tomcat的webapps目录中,有个非常特殊的目录ROOT,它就是网站默认根目录。
  • 将eshop解压后的文件放到这个ROOT中。
  • bbs解压后文件都放在CATALINA_BASE/webapps/bbs目录下。
  • 每一个虚拟主机的目录都可以使用appBase配置自己的站点目录,里面都可以使用ROOT目录作为主站目录
2.1.1 JSP WebApp目录结构
  • 主页配置:一般指定为index.jsp或index.html
  • WEB-INF/:当前WebApp的私有资源路径,通常存储当前应用使用的web.xml和context.xml配置文件
  • META-INF/:类似于WEB-INF
  • classes/:类文件,当前webapp需要的类
  • lib/:当前应用依赖的jar包
2.1.2webapp归档格式
  • .war:WebApp打包
  • .jar:EJB类打包文件
  • .rar:资源适配器类打包文件
  • .ear:企业级WebApp打包
    传统应用开发测试后,通常打包为war格式,这种文件部署到了Tomcat的webapps下,还可以自动展开。
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">

2.2 部署Deploy

部署:将webapp的源文件放置到目标目录,通过web.xml和context.xml文件中配置的路径就可以访问该webapp,通过类加载器加载其特有的类和依赖的类到JVM上。

  • 自动部署 Auto Deploy:Tomcat发现多了这个应用就把它加载并启动起来
  • 手动部署
    • 冷部署:将webapp放到指定目录,才去启动Tomcat
    • 热部署:Tomcat服务不停止,需要依赖manager、ant脚本、tcd(tomcat clientdeployer)等工具
  • 反部署undeploy:停止webapp的运行,并从JVM上清除已经加载的类,从Tomcat应用目录中移除部署的文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值