tomcat的目录如下:
目录名 简介
bin 存放启动和关闭 tomcat 脚本
conf 包含不同的配置文件 ,server .xml (Tomcat 的主要配置文件) 和 web.xml
work 存放 jsp 编译后产生的 class 文件
webapp 存放应用程序示例,以后你要部署的应用程序也要放到此目录
logs 存放日志文件
lib 这三个目录主要存放 tomcat 所需的 jar 文件
service.xml配置简介:
<!--
port: 指定一个端口,这个端口负责监听关闭tomcat的请求
shutdown: 指定向端口发送的命令字符串
-->
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<!--
GlobalNamingResources: 服务器的全局JNDI资源,可以有子标签<Resource></Resource>
-->
<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>
<!--
name: 指定service的名字
-->
<Service name="Catalina">
<!--
Executor: 线程池,一个或多个Connector可以共享此线程池
name: 线程池名称,名称必须唯一
namePrefix: 线程的名字前缀,用来标记线程名字的,这样每个线程就用这个前缀加上线程编号了,比如catalina-exec-1 、catalina-exec-2
maxThreads: 允许的最大线程池里的线程数量,默认是200,大的并发应该设置的高一些,反正只是限制而已,不占用资源
minSpareThreads: 最小的保持活跃的线程数量,默认是25.这个要根据负载情况自行调整了。太小了就影响反应速度,太大了白白占用资源
maxIdleTime: 最小的保持活跃的线程数量,默认是25.这个要根据负载情况自行调整了。太小了就影响反应速度,太大了白白占用资源
threadPriority: 线程的等级。默认是Thread.NORM_PRIORITY
-->
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4"/>
<!--
Connector: 表示客户端和service之间的连接
port: 指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求
minProcessors: 服务器启动时创建的处理请求的线程数
maxProcessors: 最大可以创建的处理请求的线程数
enableLookups: 如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
redirectPort: 指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
acceptCount: 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
connectionTimeout: 指定超时的时间数(以毫秒为单位)
-->
<Connector port="8400" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="9400" />
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="9400" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="conf/localhost.keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="TLS" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<!--
Engine: 表示指定service中的请求处理机,接收和处理来自Connector的请求
name:
defaultHost: 指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的
jvmRoute:
-->
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
<Engine name="Catalina" defaultHost="localhost">
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
<Valve className="org.apache.catalina.valves.RequestDumperValve"/>
<!--
Realm: 表示存放用户名,密码及role的数据库
className: 指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口
-->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<!--
Host: 表示一个虚拟主机、并且可以包含Context子节点配置虚拟目录
name: 指定主机名
appBase: 应用程序基本目录,即存放应用程序的目录
unpackWARs: 如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序
autoDeploy: 自动部署
xmlValidation: 是否验证xml
xmlNamespaceAware:
-->
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
<!--
Context: host子节点配置虚拟目录
path: 虚拟目录名称
docBase: 物理路径
Debug: Debug模式
Reload: True 重新加载,修改后自动加载
-->
<Context path="" docBase="\ptp" debug="0" reloadable="true" />
</Host>
</Engine>
</Service>
</Server>
本文详细介绍了Tomcat服务器的目录结构及其功能,包括bin、conf等关键目录的作用,并深入解析了service.xml配置文件中的各项参数含义,如端口配置、线程池管理、连接器设置等。
3540

被折叠的 条评论
为什么被折叠?



