Tomcat的架构:

顶级组件: 位于配置层次的顶级,并且彼此间有着严格的对应关系
连接器: 连接客户端(可以是浏览器或Web服务器)请求至Servlet容器
容器:  包含一组其它组件
被嵌套的组件:位于一个容器当中,但不能包含其它组件

各常见组件:

服务器(server):Tomcat的一个实例,通常一个JVM只能包含一个Tomcat实例
服务(service):一个服务组件通常包含一个引擎和与此引擎相关联的一个或多个连接器。给服务命名可以方便管理员在日志文件中识别不同服务产生的日志。一个server可以包含多个service组件,但通常情下只为一个service指派一个server

连接器类组件:

连接器(connectors): 负责连接客户端请求至Servlet容器内的Web应用程序,通常指的是接收客户发来请求的位置及服务器端分配的端口。
默认端口通常是HTTP协议的8080,一个引擎可以配置多个连接器,但这些连接器必须使用不同的端口。默认的连接器是基于HTTP/1.1的Coyote

容器类组件:

引擎(Engine):引擎是指处理请求的Servlet引擎组件,它检查每请求的HTTP首部信息以辨别请求应该发往哪个host或context,并将请求处理后的结果返回的相应的客户端
主机(Host):主机组件类似于Apache中的虚拟主机,但在Tomcat中只支持基于FQDN的“虚拟主机”。一个引擎至少要包含一个主机
上下文(Context):Context组件是最内层次的组件,它表示Web应用程序本身。配置一个Context最主要的是指定Web应用程序的根目录,以便Servlet容器能够将用户请求发往正确的位置

tomcat目录结构:

bin:  可执行脚本
conf: 配置文件
lib:  运行时依赖的库文件
logs: 日志文件
webapps: web应用所在目录,web资源的存放目录
work: tomcat的工作目录


conf目录:

server.xml:   Tomcat的主配置文件,包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息
web.xml:   遵循Servlet规范标准的配置文件,用于配置servlet,并为所有的Web应用程序提供默认配置信息
tomcat-user.xml: 用户认证时用到的相关角色、用户和密码等信息
context.xml:     所有host的默认配置信息
catalina.policy : Java相关的安全策略配置文件,在系统资源级别上提供访问控制的能力;
catalina.properties: Tomcat内部package的定义及访问相关的控制
logging.properties:  日志记录相关的配置信息

webapps目录:

docs:帮助文档

examples:配置示例

host-manager:虚拟主机管理

manager:tomcat管理

ROOT:默认访问目录

每个应用程序目录下都有几个同样的目录

WEB-INF:当前webapp的私有资源,通常存放当前webapp的web.xml文件

META-INF:当前webapp的私有资源,通常存放当前webapp的context.xml文件

classes:当前webapp的私有类

lib:当前webapp的私有类,打包为jar格式

index.jpg:当前webapp的首页

webapp部署:

冷部署:把webapp复制的指定目录之后才启动tomcat

热部署:在不停止tomcat的前提下部署webapp

部署工具:manager

反部署:停止webapp并从tomcat实例拆除其部分文件和部署名

stop:停止webapp,不向用户提供服务

start:启动停止状态大webapp

redeploy:重新部署

catalina.sh       #tomcat/bin/catalina.sh命令路径
start             #启动tomcat
start -security   #以安全方式启动tomcat
stop          #停止tomcat
stop n        #指定多少秒之后停止tomcat,默认为5秒
stop -force     #强制停止tomcat
stop n -force   #指定多少秒之后强制停止tomcat,默认为5秒
configtest     #测试配置文件语法
version       #查看版本信息

tomcat配置:

创建测试webapp:

mkdir -pv /usr/local/tomcat/webapps/myapp/{WEB-INF,META-INF,classes,lib}  #创建相关目录

vim /usr/local/tomcat/webapps/myapp/index.jsp #创建测试首页

    <html><body>
<center>Now time is: <%=new java.util.Date()%>
</center></body></html>

http://18.18.23.109:8080/myapp/ #如果能看见当前时间则证明tomcat测试成功

配置管理后台:

vim /usr/local/tomcat/conf/tomcat-users.xml

<tomcat-users>
<role rolename="manager-gui"/>#状态管理接口
<role rolename="admin-gui"/>#虚拟主机管理接口
<user username="tomcat" password="123.com" roles="manager-gui,admin-gui"/>#用户,密码,调用接口
</tomcat-users>

虚拟主机配置:

<Host name="www.test.com"  unpackWARs="true" appBase="/data/webapps/" autoDeploy="false" ><Context path="" docBase="/data/webapps/" reloadable="true" /><Valve className="org.apache.catalina.valves.AccessLogValve" directory="/data/logs"prefix="www.tomcat.com_log." suffix=".txt"pattern="%h %l %u %t &quot;%r&quot; %s %b" /></Host>

host:name="主机名"  unpackWARs="是否自动展开WAR文档"  appBase="网站根目录"  autoDeploy="是否自动部署,建议为false"

context:path="访问时使用的路径" docBase="网页路径"  reloadable="是否自动重载"

Valve:directory="日志存放路径"  prefix="日志名和后缀名"  pattern="日志记录格式"

转载于:https://blog.51cto.com/liyuanjie/2151948

tomcat服务组件详解(二)相关推荐

  1. 【Unity3D-UGUI系列】(十二)ScrollView 滚动视图组件详解

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有 ...

  2. Streamsets组件详解

    Streamsets优化详解 一.Origin类组件详解 二.Processor类组件详解 三.Destination类组件详解 四.Executor类组件使用详解 一.Origin类组件详解 Ama ...

  3. 【Unity3D-UGUI系列】(一)Canvas 画布组件详解

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875   大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉 ...

  4. UE4移动组件详解(二)——移动同步机制

    第一部分从移动相关架构以及单机情况下移动的处理细节讲起 UE4移动组件详解(一)--移动框架与实现原理 而第二部分是关于移动组件同步解决方案的描述,里面有诸多细节来让移动的同步表现的更为流畅.关于移动 ...

  5. Spring Cloud Eureka 入门 (三)服务消费者详解

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! "真正的进步 ...

  6. Android笔记——四大组件详解与总结

    android四大组件分别为activity.service.content provider.broadcast receiver. -------------------------------- ...

  7. Flume常用组件详解之Source

    Flume常用组件详解:Source Flume支持众多的source.sink.拦截器等组件具体实现,详细手册可参考官方文档http://flume.apache.org/FlumeUserGuid ...

  8. Ansible 实战案例--Ansible Ad-Hoc 组件详解

    Ansible Ad-Hoc 组件详解 前言 一.命令执行 1.shell 2.command 3.remove 二.包管理 1.yum_repository 2.yum 三.服务管理模块 1.ser ...

  9. MQTT协议详解 二、MQTT控制包格式

    文章目录 系列文章目录 前言 一.MQTT控制包格式 二.固定包头 控制包类型 控制包类型标识 剩余长度 三.可变包头 数据包标识 四.载荷 系列文章目录 MQTT协议详解 一.MQTT简介 MQTT ...

最新文章

  1. Redis的入门(一)安装,设置密码
  2. codeforecs Gym 100286B Blind Walk
  3. 【STM32】【STM32CubeMX】STM32CubeMX的使用之二:外部中断
  4. Milvus加入LF AI孵化,立志成为最流行的AI数据平台
  5. *[topcoder]HexagonalBoard
  6. 远程控制别人计算机,如何远程控制别人的电脑?手把手教你远程操控别人的电脑!...
  7. ANSYS APDL学习(6):ANSYS APDL部分命令流介绍
  8. Android Bugs——Error:java.lang.RuntimeException: Some file crunching failed, see logs for details
  9. CAJ是什么格式的文档,怎么打开和使用?
  10. 微信隐藏代码功能大汇总-你不知道的微信命令行.doc
  11. micropython 固件编译关于 spi psram opi qspi 的设置
  12. 项目开发中遇到接收串口数据时序混乱的问题
  13. An Apple a day keeps the doctor away
  14. 基于云原生的私有化交付PAAS平台
  15. Java之美[从菜鸟到高手演变]之集合类【吐血推荐!讲得太好了!!!】
  16. c语言return 0和return 1的区别
  17. 命令行的艺术( the-art-of-command-line )
  18. 【哈士奇赠书活动 - 18期】-〖Flask Web全栈开发实战〗
  19. jenkins 报错E170001
  20. SAP推出On-Demand创新软件 瞄准中型企业

热门文章

  1. Java中使用Jedis连接Redis对Key进行操作的常用命令
  2. npm介绍以及常用命令
  3. 数据库系统概念总结:第二章 关系模型介绍
  4. IT治理和IT管理的区别
  5. madplay 操作步骤
  6. 7-19上午刷题未知点集合
  7. xp版php,PHP5.3以后的版本如何在XP中安装
  8. 分析如下java代码片段,Java内部测试笔试题
  9. 母亲节刚过,别盲目 high 你的“增长”
  10. “触达率图”新功能上线,量化网页浏览深度