天天看点

Tomcat

1.tomcat安装

tomcat版本:apache-tomcat-9.0.52.tar.gz

jdk版本:jdk-16.0.2_linux-x64_bin.tar.gz

配置tomcat自启动的service文件

访问Ip:8080 查看界面

Tomcat

 显示此界面即安装成功

<col>

目录

说明

bin

服务启动、停止等相关

conf

配置问价

lib

库目录

logs

日志目录

webapps

应用程序,应用部署目录

work

jsp编译后的结果文件,建议提前预热访问

文件名

server.xml

主配置文件

web.xml

每个webapp只有“部署”后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/

目录中,此文件为所有的webapps提供默认部署相关的配置

context.xml

用于定义所有web应用均需加载的Context配置,此文件为所有的webapps提供默认配置,每个web应用也可以使用自己专用的配置,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中

tomcat-users.xml

用户认证的账号和密码文件

catalina.policy

当使用security选项启动tomcat时,用于为tomcat设置安全策略

catalina.properties

Tomcat 环境变量的配置,用于设定类加载器路径,以及一些与JVM调优相关参数

logging.properties

 Tomcat 日志系统相关的配置,可以修改日志级别和日志路径等

上下文描述符文件位于:

Server,代表整个tomcat容器,一台主机可以启动多个tomcat实例,需要确保端口不冲突

Service,组织Engine和Connector,里面只能包含一个Engine

Connector.有HTTP(默认端口8080/tcp)、HTTPS(默认端口8443/tcp)、AJP(默认端口8009/tcp)协议的连接器,AJP(Apache Jserv protocol)是一种基于tcp的二进制通讯协议

Engine、Host(虚拟主机)、Context都是容器类组件,可以嵌入其他组件,内部配置如何运行应用程序

可以内嵌到其他组件内,valve、logger、realm、loader、manager等。

listener、cluster

Tomcat

名称

Server

服务器,tomcat运行的进程实例,一个Server中可以有多个Service,但通常只有一个

Service

服务,用来组织Engine和Connector的关系,一个Service中只有一个Engine

Connector

连接器,负责客户端的HTTP、HTTPS、AJP等协议连接。一个Connector只属于某一个Engine

Engine

用来响应并处理用户请求。一个Engine上可以绑定多个Connector

Host

虚拟主机

Context

应用的上下文,配置特定url路径映射和目录的映射关系:url=&gt;directory

tomcat 启动一个Server进程。可以启动多个Server,但一般只启动一个

创建一个Service提供服务。可以创建多个Service,但一般页支创建一个,每个Service中,是Engine和其他连接器Connector的关联配置

可以为这个Server提供多个连接器Connector,这些Connector使用了不同的协议,绑定了不同的端口。其作用就是处理来自客户端的不同连接请求或响应

Service内部定义了Engine,引擎才是真正的处理请求的入口,其内部定义多个虚拟主机Host

Host定义虚拟主机,虚拟主机有name名称,通过名称匹配

Context定义应用程序单独的路径映射和配置

多个组件关系如下:

假设来自客户端的请求为:http://localhost:8080/yang/inex.jsp

浏览器的请求被发送到服务端8080,tomcat监听在此端口上。通过监听的HTTP/1.1Connector获得此请求

Connector把该请求交给它所在的Service的Engine来处理,并等待Engine的响应

Engine获得请求locahost:8080/yang/index.jsp,匹配它所有虚拟主机Host

Engine匹配到名为localhost的Host,即使匹配不到也把该请求交给该Host处理,因为该Host被定义为该Engine的默认主机

localhost  Host获得请求/index.jsp 匹配它所拥有的所有Context

Host匹配到路径为/yang的Context

path=/yang的Context获得请求/index.jsp,在它的mapping table中寻找对应的servlet

Context匹配到URL PATTERN为*.jsp的servlet,对应于jspServlet类构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法

Context 把执行完了之后的HttpServletResponse对象返回给Host

Host 把HttpDervletResponse对象返回给Engine

Engine把HttpServletResponse对象返回给Connector

Connector把HttpServletResponse对象返回给浏览器端

tomcat中默认的网站根目录是$CATALINA_BASE/webapps/

在tomcat的webapps目录中,有个非常特殊的目录ROOT,他就是网站的根目录

假设要部署应用eshop、forum,将eshop解压后的文件放到这个$CATALINA_BASE/webapps/ROOT中

forum解压后文件都放在$CATALINA_BASE/webapps/forum目录下

最终网站的链接关系如下

http://localhost/ 对应于eshop应用,即$CATALINA_BASE/webapps/ROOT目录

http://localhost/forum/ 对应于forum应用,即$CATALINA_BASE/webapps/forum/

如果同时存在$CATALINA_BASE/webapps/ROOT/forum/,仍以$CATALINA_BASE/webapps/forum优先生效

每一个虚拟主机的目录都可以使用appBase配置自己的站点目录,里面都可以使用appBase目录下的ROOT目录作为主站目录

主页配置:默认按以下顺序查找主页文件index.html,index.htm,index.php

WEB-INF/:当前webapp的私有资源路径,通常存储当前应用的web.xml和context.xml配置文件

META-INF/:类似于WEB-INF也是配置信息,浏览器无法访问

classes/: 类文件,当前webapp需要的类

lib/:当前应用用来的jar包

将conf/web.xml中的&lt;welcome-file-list&gt;标签内容,复制到/usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml中

  webApp的专有配置优先于系统的全局配置

  修改系统的全局配置文件,需要重新启动服务生效

  修改 webApp的专有配置,无需重启即可生效

conf/server.xml 内容如下:

conf/server.xml中可以配置service,connector,Engine,Host等

service配置:一般情况下,一个Server实例配置一个Service,name属性相当于Service的ID

连接器配置:

引擎配置:

defaultHost 配置

上一篇: tomcat
下一篇: Tomcat