(若有不足或错误之处还请多指导)
Tomcat 简介
Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和Java Server Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将 Tomcat 和 Apache Web 服务器混淆,Apache Web Server 是一个用 C 语言实现的 HTTP web server;这两个 HTTP web server 不是捆绑在一起的。Apache-Tomcat 包含了一个配置管理工具,也可以通过编辑 XML 格式的配置文件来进行配置。
Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O'Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(英语公猫或其他雄性猫科动物)。而O'Reilly出版的介绍Tomcat的书籍(ISBN 0-596-00318-8)的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。
Tomcat提供了一个Jasper编译器用以将JSP编译成对应的Servlet。
Tomcat的Servlet引擎通常与Apache或者其他Web服务器一起工作。
由于Tomcat是使用Java开发的,所以它可以运行在任何一个装有JVM的不同操作系统之上。
Tomcat的逻辑组件
<1>. Server是Tomcat的一个实例,一个Server可以有多个service
<2>. Connector (连接器,可以有多个) : 为了连接不同的请求,会有不同的连接器,如: http connection ,https connection ,AJP连接器(Apache Jesery Protocol) 实现apache 与 Tomcat 通信连接的
<3>. Service 让Server的Connector 与引擎关联起来
1. 是Server的一个子组件
2. 关联一个或多个 Connector到某个Engine
3. 一个Service内部只能有一个引擎,一个引擎可以关联多个Connector
<4>. 一个引擎就是一个Container(容器) 也就是一个独立的web运行环境
1. 可以包含多个Host
2. 但要有一个默认的Host(虚拟主机)
<5>. Host
1. 是引擎的子组件
2. 可以包含多个Context
3. 每个Context对应于一个Web应用程序,而每一个Web应用程序需要至少一个web.xml(部署描述符文件)
<6>. Context:上下文
每一个独立的主机可以包含多个Context
额外的组件:
valve : 阀门, 能够定义在容器内部,实现将具有某些特征的数据包或报文,对其归类采取一定动作的工具
Realm : 领域 能够定义在容器内部,为某一个应用程序提供用户认证的机制, 用户在访问这个容器时,是需要认证的
<*>关于Tomcat各组件的详细信息可以参考这篇文章:http://www.ibm.com/developerworks/cn/java/j-lo-tomcat1/index.html
Tomcat的目录结构(默认是在/usr/local/ 下)
bin/
.bat 是在windows上执行的脚本
.sh 是在linux上执行的脚本
bootstrap.jar
commons-daemon-native.tar.gz
tomcat-native.tar.gz 或者需要解压出来自己重新编译安装,依赖于apr 和apr-utils,让tomcat支持apr连接器
conf/
server.xml 当前Tomcat的主配置文件
web.xml 应用程序的布署描述符文件
context.xml
tomcat-user.xml 启用用户认证时用到的文件(定义用户的帐号、角色、密码)
catalina.policy 引擎策略 ,施加到catalina引擎上的安全策略, 在启动的时候指定 -security 选项
catalina.properties 运行时候的属性
lib/ 公共类
catalina.jar catalina引擎的实现(catalina是tomcat的引擎)
servlet-api.jar 让tomcat成为servlet容器的一个jar文件
temp/
webapps/ 网页文件存放的默认路径
host-manager/ 虚拟主机定义和管理,基于web的管理接口,可以通过web管理tomcat
manager/ 布署工具和会话管理工具
ROOT/ 直接被访问的网页文件存放路径
work/ jsp或tomcat 的工作目录
**************************************************************************
/bin/version.sh 查看tomcat的环境变量及相关属性信息 CATALINA_BASE tomcat 实例的运行目录
在同一个系统上可以启动多个 tomcat 进程,每个tomcat进程称之为一个tomcat的 instance(实例)
配置tomcat的连接器,让不同的实例使用不同的端口提供服务
不同实例的运行目录不同,都要有自己的工作目录,配置文件都在实例的运行目录下,每一个实例都要有自己的工作环境
CATALINA_HOME tomcat软件的默认安装路径
CATALINA_TMPDIR
/bin/configtest.sh 检查配置
/bin/catalina.sh 可以调用其它的脚本 version/configtest/start
**************************************************************************
以下三个端口都在 server.xml 文件中定义
8005 控制sever的一个telnet的控制远程连接口 <Server port="8005" shutdown="SHUTDOWN"> eg: # telnet 127.0.0.1 8005; SHUTDOWN
8009 连接器所监听的端口 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> AJP协议只可以接受前端apache服务器的请求
8080 连接器所监听的端口 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> HTTP协议可以接受用户的请求
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" />