设为首页 加入收藏

TOP

为什么Tomcat架构要这么设计?这篇文章告诉你答案!(一)
2023-07-25 21:36:52 】 浏览:72
Tags:Tomcat 文章告

Tomcat体系架构

img

Tomcat项目结构

img

bin目录

bin目录主要是用来存放tomcat的命令,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以.bat结尾的(windows命令)。

很多环境变量的设置都在此处,例如可以设置JDK路径、tomcat路径

img

  • startup文件:主要是检查catalina.bat/sh 执行所需环境,并调用catalina.bat 批处理文件。启动tomcat。
  • catalina文件:真正启动Tomcat文件,可以在里面设置jvm参数。后面性能调优会重点讲
  • shutdown文件:关闭Tomcat
  • 脚本version.sh、startup.sh、shutdown.sh、configtest.sh都是对catalina.sh的包装,内容大同小异,差异在于功能介绍和调用catalina.sh时的参数不同。
  • Version:查看当前tomcat的版本号,
  • Configtest:校验tomcat配置文件server.xml的格式、内容等是否合法、正确。
  • Service:安装tomcat服务,可用net start tomcat 启动

conf目录

conf目录主要是用来存放tomcat的一些配置文件。

img

  • server.xml:可以设置端口号、设置域名或IP、默认加载的项目、请求编码
  • web.xml:可以设置tomcat支持的文件类型
  • context.xml:可以用来配置数据源之类的
  • tomcat-users.xml:用来配置管理tomcat的用户与权限
  • 在Catalina目录下可以设置默认加载的项目
server.xml
COPY<?xml version="1.0" encoding="UTF-8"?>

<!-- Server代表一个 Tomcat 实例。可以包含一个或多个 Services,其中每个Service都有自己的Engines和Connectors。
       port="8005"指定一个端口,这个端口负责监听关闭tomcat的请求
  -->
<Server port="8005" shutdown="SHUTDOWN">
<!-- 监听器 -->
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<!-- 全局命名资源,定义了UserDatabase的一个JNDI(java命名和目录接口),通过pathname的文件得到一个用户授权的内存数据库 -->
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
               type="org.apache.catalina.UserDatabase"
               description="User database that can be updated and saved"
               factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
               pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<!-- Service它包含一个<Engine>元素,以及一个或多个<Connector>,这些Connector元素共享用同一个Engine元素 -->
<Service name="Catalina">
<!-- 
         每个Service可以有一个或多个连接器<Connector>元素,
         第一个Connector元素定义了一个HTTP Connector,它通过8080端口接收HTTP请求;第二个Connector元素定
         义了一个JD Connector,它通过8009端口接收由其它服务器转发过来的请求.
     -->
<Connector port="8080" protocol="HTTP/1.1"
                connectionTimeout="20000"
                redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<!-- 每个Service只能有一个<Engine>元素 -->
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                resourceName="UserDatabase"/>
</Realm>
<!-- 默认host配置,有几个域名就配置几个Host,但是这种只能是同一个端口号 -->
<Host name="localhost"  appBase="webapps"
             unpackWARs="true" autoDeploy="true">
       <!-- Tomcat的访问日志,默认可以关闭掉它,它会在logs文件里生成localhost_acc
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇如何通过Java代码在Word中创建可.. 下一篇玩转Mybatis高级特性:让你的数据..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目