tomcat服务组件详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat服务组件详解相关的知识,希望对你有一定的参考价值。


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="日志记录格式"



以上是关于tomcat服务组件详解的主要内容,如果未能解决你的问题,请参考以下文章

详解 Tomcat 配置文件 server.xml

Tomcat基础详解

tomcat详解

详解Tomcat 配置文件server.xml

tomcat 的配置文件 server.xml 详解

Tomcat 组件详解