1.tomcat安装
tomcat版本:apache-tomcat-9.0.52.tar.gz
jdk版本:jdk-16.0.2_linux-x64_bin.tar.gz
配置tomcat自启动的service文件
访问Ip:8080 查看界面
显示此界面即安装成功
<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
名称
Server
服务器,tomcat运行的进程实例,一个Server中可以有多个Service,但通常只有一个
Service
服务,用来组织Engine和Connector的关系,一个Service中只有一个Engine
Connector
连接器,负责客户端的HTTP、HTTPS、AJP等协议连接。一个Connector只属于某一个Engine
Engine
用来响应并处理用户请求。一个Engine上可以绑定多个Connector
Host
虚拟主机
Context
应用的上下文,配置特定url路径映射和目录的映射关系:url=>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中的<welcome-file-list>标签内容,复制到/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 配置