`
nesta2001zhang
  • 浏览: 68821 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Tomcat6.x目录与server.xml详解

 
阅读更多

  Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,目前最新版本是 6.x ,相对 5.x 性能提升很多,主要优化了内存使用,增强 IO 能力,重新构造集群功能。

 

     近期对Tomcat6.x作深入学习,参考上述声明的Tomcat全攻略,由于笔者是2001年针对Tomcat4.x所写,故参考之并针对 Tomcat6.x做了总结,形成此篇学习笔记,希望对学习的人有所帮助,本文涵盖了:Tomcat目录、Server.xml元素讲解,数据库连接池配 置、线程池配置、虚拟目录配置。关于如何下载、安装、运行Tomcat略,请google,相信有详细的文章讲述。

 

 

tomcat 的目录结构如下:

 

目录名

简介

bin

存放启动和关闭 tomcat 脚本

conf

包含不同的配置文件 ,server.xml(Tomcat 的主要配置文件 ) web.xml

work

存放 jsp 编译后产生的 class 文件

webapp

存放应用程序示例,以后你要部署的应用程序也要放到此目录

logs

存放日志文件

lib

这三个目录主要存放 tomcat 所需的 jar 文件

 

 

 

server.xml 配置简介

 

 

元素名

属性

解释

server

port

指定一个端口,这个端口负责监听关闭 tomcat 的请求

shutdown

指定向端口发送的命令字符串

GlobalNamingResources

 

服务器的全局 JNDI 资源,可以有子标签 <Resource></Resource>

Executor( 线程池,一个或多个 Connector 可以共享此线程池 )

name

线程池名称,名称必须唯一

namePrefix

线程的名字前缀,用来标记线程名字的,这样每个线程就用这个前缀加上线程编号了,比如 catalina-exec-1 catalina-exec-2

maxThreads

允许的最大线程池里的线程数量,默认是 200 ,大的并发应该设置的高一些,反正只是限制而已,不占用资源

minSpareThreads

最小的保持活跃的线程数量,默认是 25. 这个要根据负载情况自行调整了。太小了就影响反应速度,太大了白白占用资源

maxIdleTime

最小的保持活跃的线程数量,默认是 25. 这个要根据负载情况自行调整了。太小了就影响反应速度,太大了白白占用资源

threadPriority

线程的等级。默认是 Thread.NORM_PRIORITY

service

name

指定 service 的名字

Connector ( 表示客户端和 service 之间的连接 )

port

指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求

minProcessors

服务器启动时创建的处理请求的线程数

maxProcessors

最大可以创建的处理请求的线程数

enableLookups

如果为 true ,则可以通过调用 request.getRemoteHost() 进行 DNS 查询来得到远程客户端的实际主机名,若为 false 则不进行 DNS 查询,而是返回其 ip 地址

redirectPort

指定服务器正在处理 http 请求时收到了一个 SSL 传输请求后重定向的端口号

acceptCount

指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理

connectionTimeout

指定超时的时间数 ( 以毫秒为单位 )

Engine ( 表示指定 service 中的请求处理机,接收和处理来自 Connector 的请求 )

name

 

defaultHost

指定缺省的处理请求的主机名,它至少与其中的一个 host 元素的 name 属性值是一样的

jvmRoute

 

host ( 表示一个虚拟主机、并且可以包含 Context 子节点配置虚拟目录 )

name

指定主机名

appBase

应用程序基本目录,即存放应用程序的目录

unpackWARs

如果为 true ,则 tomcat 会自动将 WAR 文件解压,否则不解压,直接从 WAR 文件中运行应用程序

autoDeploy

自动部署

xmlValidation

是否验证 xml

xmlNamespaceAware

 

Realm ( 表示存放用户名,密码及 role 的数据库 )

className

指定 Realm 使用的类名,此类必须实现 org.apache.catalina.Realm 接口

Context(host 子节点配置虚拟目录 )

path

虚拟目录名称

docBase

物理路径

Debug

Debug 模式

Reload

True 重新加载,修改后自动加载

 

上面我们讲述了server .xml个元素的含义,下面我们给出详细示例

 

Tomcat数据库连接池配置如下:

server.xml配置Resource

Xml代码  收藏代码
  1. < Resource   name = "jdbc/ExampleDB"   auth = "Container"   type = "javax.sql.DataSource"   
  2.               maxActive = "100"   maxIdle = "30"   maxWait = "10000"   
  3.               username = "APP"   password = "APP"   driverClassName = "org.apache.derby.jdbc.ClientDriver"   
  4.               url = "jdbc:derby://localhost:1527/springside-example;create=true" />   

 

context.xml文件增加:

 

Xml代码  收藏代码
  1. < WatchedResource > WEB-INF/web.xml </ WatchedResource >   
  2.       
  3.     < ResourceLink   name = "jdbc/ExampleDB"     global = "jdbc/ExampleDB"     type = "javax.sql.DataSource" />   
  4.       

 

Tomcat共享线程池配置:

取消Executor注释,修改连接数至自己合适的数值既可。

 

Xml代码  收藏代码
  1. < Executor   name = "tomcatThreadPool"   namePrefix = "catalina-exec-"    
  2.        maxThreads = "200"   minSpareThreads = "100"   maxIdleTime = "60000" />   

 

 executor="tomcatThreadPool" 标明此连接使用上面配置的名称为tomcatThreadPool的连接池,无属性共享连接不会生效 protocol表示使用的是 http协议 端口号为8080

Java代码  收藏代码
  1.  <Connector port= "8080"  protocol= "HTTP/1.1"  redirectPort= "8443"    
  2.                connectionTimeout="20000"    
  3.                executor="tomcatThreadPool"   
  4.                acceptCount="100"   
  5.                useBodyEncodingForURI="true"   
  6.                enableLookups="false"   
  7.                 />  

 

虚拟目录配置:

在<host></host>之间增加如下

 

<!-- 配置虚拟目录,例如:http://localhost:8080 -->

 

Xml代码  收藏代码
  1. < Context   path = "/"   docBase = "D:\workspace\code\HBJH\web" > </ Context >  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics