1.tomcat概念

Tomcat

Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选

tomcat是web服务,类似于apache,Apache是提供html静态的web服务,只有集成了lamp的架构Apache才可以通过PHP和MySQL提供动态页面,而Tomcat不是,Tomcat是由Java编写的服务程序,运行在jdk(java环境)下,主要应用APP(或者说java的服务端)的服务端,为APP提供服务,本身即可提供动态页面(.jsp)的请求,当有html时也可以处理静态页面

tomcat是Apache的服务的扩展,但是tomcat是作为独立于Apache的一个独立进程运行的,可以单独使用Tomcat

另外tomcat也是可以与Apache进行架构,组合使用,Apache作为tomcat的代理,用户访问请求由Apache接受,如果是静态页面Apache进行处理,如果是动态页面则交给tomcat处理

jdk介绍 (Java运行环境)

安装tomcat需要安装jdk环境 本身自带jdk环境 但是里面的命令不完整 所以需要自己安装一个

jdk(java development kit)是java语言的软件开发工具包

主要组件:

Tomcat主要组件:服务器Server,服务Service,连接器Connector、容器Container。连接器Connector和容器Container是Tomcat的核心

一个Container容器和一个或多个Connector连接器组合在一起,加上其他一些支持的组件共同组成一个Service服务,有了Service服务便可以对外提供能力了,但是Service服务的生存需要一个环境,这个环境便是Server,Server组件为Service服务的正常使用提供了生存环境,Server组件可以同时管理一个或多个Service服务

三种工作模式
tomcat目录下文件:
  • bin 存放tomcat常用的脚本文件 启动/关闭等
  • lib 存放tomcat的依赖库文件
  • webapps 存放tomcat的站点根目录默认访问到下面的root目录,加载的index.jsp文件,包括需要部署的war包 当用户访问tomcat时默认访问此位置下的ROOT目录下的jsp文件
  • conf 存放tomcat的配置文件
  • server.xml 服务配置文件 /usr/local/tomcat/conf/server.xml
  • web.cml 站点配置文件 /usr/local/tomcat/conf/web.cml
  • logs 存放tomcat的日志文件
  • catalina.out 错误日志 标准输出和标准出错,此日志不会自动分割,大于2G时会受到影响,具体见-解疑释难
  • catalina.2021-11-20.log 运行日志,启动和暂停时的运行日志
  • localhost_access_log.2021-11-20.txt 访问日志
  • temp 存放tomcat的临时生成的文件
  • work 存放tomcat运行时所需的.class文件,所有java编写的文件需要编译成.class文件才能使用
tomcat的架构
  1. server(服务器)(就是tomcat)

    提供一个接口让其他程序能够访问到service集合、同时要维护它所包含的所有service的生命周期,包括如何初始化、如何结束服务、如何找到别人要访问的service

  2. service(服务,由一个或多个service对外提供服务)

    Service是server下一个集合,service包含多个接收请求的connector并有一个处理所有连接的容器container

  3. connector(连接器)

    Connector作用是监听客户端请求,并将请求封装提交container处理,然后将处理结果返回客户端。

    Tomcat有两个典型的connector,一个用来监听浏览器的http请求,通过8080端口侦听来自客户browser(浏览器)的http请求,另一个是用来监听来自其他服务器的请求,通过8009端口侦听其他服务的请求

  4. container(容器,一个service只能有一个容器,其实就是engine)

    engine(引擎)

    Engine下可以配置多个virtual host(虚拟主机),每个虚拟主机都有一个域名,当engine获得一个请求时,它把该请求匹配到某个host(主机)上,然后把该请求交给host来处理。

    Engine 有一个默认虚拟主机,当请求无法匹配到任何一个host上的时候,将交给该默认host来处理

    host

    代表一个virtual host(虚拟主机),每个虚拟主机和某个网络域名domain name相匹配(绑定)。

    每个虚拟主机下都可以deploy(部署)一个或者多个web app(或者说站点),每个web app对应一个context(上下文或者说页面),有一个context path(上下文路径或者说页面文件路径位置)。

    当host获得一个请求时,将把该请求匹配到某个context上,然后把该请求交给该context来处理。

    所有无法和其他context的路径名匹配的请求都将最终和该默认context匹配

  5. context

    一个context对应于一个web application(web应用程序),其实一个context就是一个jsp页面,在host下和有多个页面,多个页面组成了一个网站,简单来说就是一个虚拟主机对应了一个网站后台或者一个app的后台,而这个网站或者app需要多个页面时就需要编写多个对应jsp页面文件和context配置信息,多个页面利用类似超链接的技术进行页面切换

Tomcat顶层架构小结

Tomcat中只有一个Server,一个Server可以有多个Service,一个Service可以有多个Connector和一个Container;

Server掌管着整个Tomcat的生死大权;

Service 是对外提供服务的;

Connector用于接受请求并将请求封装成Request和Response来具体处理;

Container用于封装和管理Servlet,以及具体处理request请求

关于端口和连接器

tomcat可以用到的大概有4个端口8080/8009/8005/8443

  • 8080端口负责监听客户端http请求,进行响应

  • 8009端口负责监听其他服务端ajp请求,进行响应,比如Apache+tomcat时监听Apache

  • 8005端口负责监听关闭服务命令

  • 8443端口负责监听客户端的https的请求

  • 特殊情况:当使用Apache+tomcat时,客户端通过443端口请求jsp页面,Apache通过8443端口相tomcat转发请求

    端口和连接器关系

    第一个connector连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。当使用的https时,重定向的8443端口

    <Connector port="8080" protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="8443" />
    

    第二个connector连接器监听8009端口,负责使用ajp协议接受其他HTTP服务器的请求连接。当与其他服务合作时使用的是https,重定向到8443端口

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    
访问流程描述:
  1. 客户端通过8080端口向服务端发送请求,被监听8080端口Connector(使用http协议的连接器)获得,然后转交Container容器(Engine)处理等待回应,Engine对所有host虚拟主机进行匹配,匹配到host虚拟主机以后,则匹配对应虚拟主机的context页面进行处理(这个处理过程较为复杂,无需深究),context处理完毕后返还host,host返还Engine,Engine返还Connector,Connector通过http对客户端进行响应。若是没有host虚拟主机匹配成功,则最后转交给默认虚拟主机处理
  2. 当有其他服务请求tomcat时,被监听8009端口的Connector(使用ajp协议的连接器)获得,然后转交Container容器(Engine)处理等待回应。。。。。。。。。同1
  3. 关闭服务时,执行shutdown.sh关闭tomcat时就是连接8005端口执行“SHUTDOWN”命令
  4. 当客户端使用https协议连接时,被监听8443端口的Connector(使用http协议的连接器)获得,然后转交Container容器(Engine)处理等待回应。。。。。。。。。同1
业务访问流程图

配置文件

Tomcat 的配置文件由4个 xml 文件组成,分别是 context.xml、web.xml、server.xml、tomcat-users.xml 文件组成

注释后的配置文件

配置文件结构图

组成,分别是 context.xml、web.xml、server.xml、tomcat-users.xml 文件组成

注释后的配置文件

[外链图片转存中…(img-eNUjE1qy-1663486191841)]

配置文件结构图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值