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>