`

tomcat下的server.xml文件和context.xml (转)

阅读更多

<Server>元素
它代表整个容器,是Tomcat实例的顶层元素.由org.apache.catalina.Server接口来定义.它包含一个<Service>元素.并且它不能做为任何元素的子元素.

<Server port= "8005"  shutdown= "SHUTDOWN"  debug= "0" >

 

className: 指定实现org.apache.catalina.Server接口的类.默认值为org.apache.catalina.core.StandardServer

port: 指定Tomcat监听shutdown命令端口.终止服务器运行时,必须在Tomcat服务器所在的机器上发出shutdown命令.该属性是必须的.

 

shutdown: 指定终止Tomcat服务器运行时,发给Tomcat服务器的shutdown监听端口的字符串.该属性必须设置.

 

<Service>元素
该元素由org.apache.catalina.Service接口定义,它包含一个<Engine>元素,以及一个或多个<Connector>,这些Connector元素共享用同一个Engine元素

<Service name= "Catalina" >
<Service name= "Apache" >

第一个<Service>处理所有直接由Tomcat服务器接收的web客户请求.
第二个<Service>处理所有由Apahce服务器转发过来的Web客户请求.

 

className: 指定实现org.apahce.catalina.Service接口的类.默认为org.apahce.catalina.core.StandardService.
name: 定义Service的名字.

 

<Engine>元素
每个Service元素只能有一个Engine元素.元素处理在同一个<Service>中所有<Connector>元素接收到的客户请求.由org.apahce.catalina.Engine接口定义.

<Engine name= "Catalina"  defaultHost= "localhost"  debug= "0" >

className: 指定实现Engine接口的类,默认值为StandardEngine
defaultHost: 指定处理客户的默认主机名,在<Engine>中的<Host>子元素中必须定义这一主机
name: 定义Engine的名字

在<Engine>可以包含如下元素<Logger>, <Realm>, <Value>, <Host>

 

<Host>元素
它由Host接口定义.一个Engine元素可以包含多个<Host>元素.每个<Host>的元素定义了一个虚拟主机.它包含了一个或多个Web应用.

 

<Host name= "localhost"  debug= "0"  appBase= "webapps" unpackWARs= "true"  autoDeploy= "true" >

className: 指定实现Host接口的类.默认值为StandardHost

 

appBase: 指定虚拟主机的目录,可以指定绝对目录,也可以指定相对于<CATALINA_HOME>的相对目录.如果没有此项,默认为<CATALINA_HOME>/webapps

 

autoDeploy: 如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用

 

unpackWARs: 如果此项设置为true,表示把WEB应用的WAR文件先展开为开放目录结构后再运行.如果设为false将直接运行为WAR文件


alias: 指定主机别名,可以指定多个别名

 

deployOnStartup: 如果此项设为true,表示Tomcat服务器启动时会自动发布appBase目录下所有的Web应用.如果Web应用中的server.xml没有相应的<Context>元素,将采用Tomcat默认的Context

 

name: 定义虚拟主机的名字

在<Host>元素中可以包含如下子元素: <Logger>, <Realm>, <Value>, <Context>


<Context>元素
它 由Context接口定义.是使用最频繁的元素.每个<Context元素代表了运行在虚拟主机上的单个Web应用.一个<Host> 可以包含多个<Context>元素.每个web应用有唯一的一个相对应的Context代表web应用自身.servlet容器为第一个 web应用创建一个ServletContext对象.

<Context path= "/sample"  docBase= "sample"  debug= "0"  reloadbale= "true" >
 

className: 指定实现Context的类,默认为StandardContext类

 

path: 指定访问Web应用的URL入口,注意/myweb,而不是myweb了事

 

reloadable: 如果这个属性设为true, Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-INF/lib目录

CLASS文件的改运.如果监视到有class文件被更新,服务器自重新加载Web应用

 

cookies: 指定是否通过Cookies来支持Session,默认值为true

 

useNaming: 指定是否支持JNDI,默认值为了true

在<Context>元素中可以包含如下元素: <Logger>, <Realm>, <Resource>, <ResourceParams>

 

Connector元素
由Connector接口定义.<Connector>元素代表与客户程序实际交互的给件,它负责接收客户请求,以及向客户返回响应结果.

<Connector port= "8080"  maxThread= "50"  minSpareThreads= "25"  maxSpareThread= "75"  enableLookups= "false"  redirectPort= "8443"  acceptCount= "100"  debug= "0"  connectionTimeout= "20000"  disableUploadTimeout= "true"  />

<Connection port= "8009"  enableLookups= "false"  redirectPort= "8443"  debug= "0"  protocol= "AJP/1.3"  />
 

第一个Connector元素定义了一个HTTP Connector,它通过8080端口接收HTTP请求;第二个Connector元素定义了一个JD Connector,它通过8009端口接收由其它服务器转发过来的请求.

 

Connector元素共用属性


className: 指定实现Connector接口的类

 

enableLookups: 如果设为true,表示支持域名解析,可以把IP地址解析为主机名.WEB应用中调用

request.getRemoteHost方法返回客户机主机名.默认值为true

 

redirectPort: 指定转发端口.如果当前端口只支持non-SSL请求,在需要安全通信的场命,将把客户请求转发至SSL的redirectPort端口

 

HttpConnector元素的属性
className: 实现Connector的类

port: 设定Tcp/IP端口,默认值为8080,如果把8080改成80,则只要输入 http://localhost 即可因为TCP/IP的默认端口是80
address: 如果服务器有二个以上ip地址,此属性可以设定端口监听的ip地址.默认情况下,端口会监听服务器上所有的ip地址
bufferSize: 设定由端口创建的输入流的缓存大小.默认值为2048byte
protocol: 设定Http协议,默认值为HTTP/1.1
maxThreads: 设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数目.默认值为200
acceptCount: 设定在监听端口队列的最大客户请求数量,默认值为10.如果队列已满,客户必须等待.
connectionTimeout: 定义建立客户连接超时的时间.如果为-1,表示不限制建立客户连接的时间

 

JkConnector的属性
className: 实现Connector的类
port: 设定AJP端口号
protocol: 必须设定为AJP/1.3

 

acceptCount - The maximum queue length of incoming connections that have not yet been accepted. [10]

address - For servers with more than one IP address, the address upon which this connector should listen. [All Addresses]

bufferSize - Default input buffer size (in bytes) for requests created by this Connector. [2048]

debug - Debugging detail level. [0]

enableLookups - Should we perform DNS lookups on remote IP addresses when request.getRemoteHost() is called? [true]

maxProcessors - The maximum number of processor threads supported by this connector. [20]

minProcessors - The minimum number of processor threads to be created at container startup. [5]

port - TCP/IP port number on which this Connector should listen for incoming requests. [8080]

proxyName - Host name to be returned when an application calls request.getServerName() . [Value of Host: header]

proxyPort - Port number to be returned when an application calls request.getServerPort() . [Same as port ]

 

注:*************************

 

server.xml元素详解小人物,大博客*s1|zu n$L8d

元素名
属性
解释
server
port
指定一个端口,这个端口负责监听关闭 tomcat 的请求
shutdown
指定向端口发送的命令字符串
service
name
指定 service 的名字
Connector( 表示客户端和 service 之间的连接 )
port
指定服务器端要创建的端口号,并在这个端口监听来自客户端的请求
minProcessors
服务器启动时创建的处理请求的线程数
maxProcessors
最大可以创建的处理请求的线程数
enableLookups
如果为 true ,则可以通过调用 request.getRemoteHost() 进行 DNS 查询来得到远程客户端的实际主机名,若为 false 则不进行 DNS 查询,而是返回其 ip 地址
redirectPort
指定服务器正在处理 http 请求时收到了一个 SSL 传输请求后重定向的端口号
acceptCount
指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
connectionTimeout
指定超时的时间数 ( 以毫秒为单位 )
Engine( 表示指定 service 中的请求处理机,接收和处理来自 Connector 的请求 )
defaultHost
指定缺省的处理请求的主机名,它至少与其中的一个 host 元素的 name 属性值是一样的
Context( 表示一个 web 应用程序,通常为 WAR 文件,关于 WAR 的具体信息见 servlet 规范 )
docBase
应用程序的路径或者是 WAR 文件存放的路径
path
表示此 web 应用程序的 url 的前缀,这样请求的 url http://localhost:8080/path/****
reloadable
这个属性非常重要,如果为 true ,则 tomcat 会自动检测应用程序的 /WEB-INF/lib /WEB-INF/classes 目录的变化,自动装载新的应用程序,我们可以在不重起 tomcat 的情况下改变应用程序
host( 表示一个虚拟主机 )
name
指定主机名
appBase
应用程序基本目录,即存放应用程序的目录
unpackWARs
如果为 true ,则 tomcat 会自动将 WAR 文件解压,否则不解压,直接从 WAR 文件中运行应用程序
Logger( 表示日志,调试和错误信息 )
className
指定 logger 使用的类名,此类必须实现 org.apache.catalina.Logger 接口
prefix
指定 log 文件的前缀
suffix
指定 log 文件的后缀
timestamp
如果为 true ,则 log 文件名中要加入时间,如下例 :localhost_log.2001-10-04.txt
Realm( 表示存放用户名,密码及 role 的数据库 )
className
指定 Realm 使用的类名,此类必须实现 org.apache.catalina.Realm 接口
Valve( 功能与 Logger 差不多,其 prefix suffix 属性解释和 Logger 中的一样 )
className
指定 Valve 使用的类名,如用 org.apache.catalina.valves.AccessLogValve 类可以记录应用程序的访问信息
directory
指定 log 文件存放的位置
pattern
有两个值, common 方式记录远程主机名或 ip 地址,用户名,日期,第一行请求的字符串, HTTP 响应代码,发送的字节数。 combined 方式比 common 方式记录的值更多


Tomcat5.0和Tomcat5.5里的server.xml文件配置是不同的。因为Tomcat5.5的context上下文配置被提取到server.xml文件外,独立配置,需要使用ResourceLink元素指定他。

 

Tomcat 5的数据源配置跟Tomcat 5.5的数据源配置有很多的差别,Tomcat 6的数据源配置跟Tomcat 5.5的配置基本上相同。
以前的Tomcat5的配置需要在server.xml文件当中配置或者在conf/Catalina/localhost下面相应的上下文配置文件做配置。这种配置方式不合理的地方在于,假如数据库做了更改,程序员需要手工去修改这些文件,不利于团队开发。
Tomcat 5.5跟Tomcat 6的配置显得更为简单,我们只需要在我们的WebRoot目录下,新建一个META-INF的目录(假如不存在),在该目录下创建一个 context.xml文件,(或conf目录下的全局context.xml),并且在context.xml文件当添加以下的配置信息(要根据自己的 情况稍加修改):
程序代码

 

<Context>
<Resource name= "jdbc/tfms"  auth= "Container"  type= "javax.sql.DataSource"
maxActive= "50"  maxIdle= "30"  maxWait= "10000"  logAbandoned= "true"
username= "sa"  password= "password"  driverClassName= "net.sourceforge.jtds.jdbc.Driver"
url= "jdbc:jtds:sqlserver://localhost:1433/TransfusionMngDB;tds=8.0;lastupdatecount=true" />
</Context> 
 

 

其中:

name 表示指定的jndi名称

auth 表示认证方式,一般为Container
type 表示数据源床型,使用标准的javax.sql.DataSource
maxActive 表示连接池当中最大的数据库连接
maxIdle 表示最大的空闲连接数
maxWait 当池的数据库连接已经被占用的时候,最大等待时间
logAbandoned 表示被丢弃的数据库连接是否做记录,以便跟踪
username 表示数据库用户名
password 表示数据库用户的密码
driverClassName 表示JDBC DRIVER
url 表示数据库URL地址

在以往的tomcat当中还需要在web.xml指定相应的resource,在tomcat 5.5以后的版本不写也可以,但建议还是配置。
程序代码

<resource- ref >
    <description>DB Connection</description>
    <res- ref -name>jdbc/tfms</res- ref -name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource- ref > 

配置完之后,还需要将JDBC DRIVER存放在%TOMCAT_HOME%/lib里面,这是必须的,不然,tomcat没有办法找到driver

之后重新启动tomcat

分享到:
评论
1 楼 最佳蜗牛 2013-04-17  
写的很好,谢谢!

相关推荐

    tomcat context.xml 连接池代码 mysql

    但注意要备份原来的context.xml文件以防万一。 这是MYSQL配置方法,如果想换其它的数据库只需要改变username="xxx" password="xxx" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1/blog" ...

    tomcat+redis负载均衡context.xml配置

    tomcat+redis负载均衡context.xml配置

    tomcat-users.xml

    默认情况下,Tomcat Manager是处于禁用状态的。准确的说,Tomcat Manager需要以用户角色进行登录并授权才能使用相应的功能,不过Tomcat并没有配置 任何用户,因此我们需要先进行用户配置后才能使用Tomcat Manager

    web在线聊天室-Tomcat-context.xml配置文件

    http://download.csdn.net/source/3156743 web在线聊天室-补充

    经验证的tomcat高并发和集群配置的server.xml

    经验证的tomcat高并发和集群配置的server.xml,在生产上已经使用的。不过需要注意context.xml中需要这样子配置: &lt;Context distributable="true" useHttpOnly="false"&gt;

    在Eclipse 中配置Tomcat项目

    对话框中Tomcat选项,选择版本,和安装路径(C:\Program Files\Apache Software Foundation\Tomcat 5.0),注意Context declaration mode 选项:Server.xml和Context files,分别代表了两中启动Tomcat的配置方式,一般...

    基于tomcat配置文件server.xml详解

    下面小编就为大家带来一篇基于tomcat配置文件server.xml详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Tomcat连接池配置方法详解 源代码 JSP context.xml

    Tomcat连接池配置方法详解 源代码 JSP context.xml

    tomcat-context.xml

    大家都知道,在Tomcat5及其以后的版本中,当启动tomcat之后,是看不到控制台中的manager应用的。Manager的应用还是很有好处的,可以直接在控制台上(类似于weblogic上的console应用)增加或者发布新的应用,重启,停...

    context.xml oracle

    context.xml oracle 数据库连接池文件 有效连接!调用tomcat lib下的context文件

    tomcat7-redis-session 相关的三个jar,详情配置看readme.txt文件

    编辑${TOMCAT_HOME}/conf/context.xml,在context中加入 &lt;Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" /&gt; &lt;Manager className="com.orangefunction.tomcat.redissessions....

    Linux系统Tomcat日志分割jar包及配置文件

    4、修改 Tomcat 的 conf/context.xml 文件,将&lt;Context&gt;为&lt;Context swallowOutput="true"&gt;  (增加 swallowOutput="true" 的属性配置,只有这样才能完全的把tomcat的stdout给接管过来。这一步很关键); 5、删除...

    nginx1.8-tomcat7-redis3.2-session配置和jar包

    tomcat-redis-session-manager-1.2-tomcat-7.jar 和tomcat的context.xml配置文件。 2.7.2版包含 commons-pool2-2.4.1.jar jedis-2.7.2.jar tomcat-redis-session.jar 和tomcat的context.xml配置文件

    修改Tomcat默认访问根目录的方法

    在conf文件夹下面找到server.xml 打开 在&lt;hosts&gt; ……中间添加一行 代码如下:&lt;Context path=”” docBase=”/usr/tomcat/apache-tomcat-8.5.11/webapps/guanwang” debug=”0″ reloadable=”true”/&gt; docBase即...

    tomcat8用redis实现session共享.rar

    4、在原有tomcat\context.xml下 添加 以下代码(参考 &lt;Manager className="org.redisson.tomcat.RedissonSessionManager" configPath="${catalina.base}/redisson.conf" readMode="REDIS" updateMode=...

    tomcat-redis-session-manager-master-2.0.0

    2.修改 conf 目录下的 context.xml 文件 &lt;Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" /&gt; &lt;Manager className="com.orangefunction.tomcat.redissessions....

    spring-instrument-tomcat-4.3.14.RELEASE.jar

    spring-instrument-tomcat-4.3.14.RELEASE.jar For many application servers, Spring provides a LoadTimeWeaver implementation that can take advantage of the instrumentable ClassLoader ...INF/context.xml.

    tomcat权威指南第二版.pdf

    context.xml 335 8. Debugging and Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 Reading Logfiles 336 Hunting for Errors 337 URLs and the ...

    tomcat_80.rar

    1. 移除了对换变量中配置的CATALINA_HOME和CATALINE_BASE的依赖,运行startup.bat就一定是启动当前的...2. 删除了webapps里的所有文件夹,避免未删除的ROOT目录与server.xml中的context配置发生冲突可能导致的错误

Global site tag (gtag.js) - Google Analytics