您的位置:首页 > 运维架构 > Tomcat

tomcat配置文件server.xml详解

2016-07-28 08:59 555 查看
http://www.ttlsa.com/tomcat/tomcat-configuration-server-xml-description/

conf/server.xml
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.Jas<a href="http://www.ttlsa.com/perl/" title="perl"target="_blank">perL</a>istener" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<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>
<!-- 定义的一个名叫“UserDatabase”的认证资源,将conf/tomcat-users.xml加载至内存中,在需要认证的时候到内存中进行认证 -->
<Service name="Catalina">
<!-- 定义Service组件,同来关联Connector和Engine,一个Engine可以对应多个Connector,每个Service中只能一个Engine--!>
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<!-- 修改HTTP/1.1的Connector监听端口为80.客户端通过浏览器访问的请求,只能通过HTTP传递给tomcat。  -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="test.com">
<!-- 修改当前Engine,默认主机是,www.test.com  -->
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
# Realm组件,定义对当前容器内的应用程序访问的认证,通过外部资源UserDatabase进行认证
<Host name="test.com"  appBase="/web" unpackWARs="true" autoDeploy="true">
<!--  定义一个主机,域名为:test.com,应用程序的目录是/web,设置自动部署,自动解压    -->
<Alias>www.test.com</Alias>
<!--    定义一个别名www.test.com,类似apache的ServerAlias -->
<Context path="" docBase="www/" reloadable="true" />
<!--    定义该应用程序,访问路径"",即访问www.test.com即可访问,网页目录为:相对于appBase下的www/,即/web/www,并且当该应用程序下web.xml或者类等有相关变化时,自动重载当前配置,即不用重启tomcat使部署的新应用程序生效  -->
<Context path="/bbs" docBase="/web/bbs" reloadable="true" />
<!--  定义另外一个独立的应用程序,访问路径为:www.test.com/bbs,该应用程序网页目录为/web/bbs   -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/web/www/logs"
prefix="www_access." suffix=".log"
pattern="%h %l %u %t "%r" %s %b" />
<!--   定义一个Valve组件,用来记录tomcat的访问日志,日志存放目录为:/web/www/logs如果定义为相对路径则是相当于$CATALINA_HOME,并非相对于appBase,这个要注意。定义日志文件前缀为www_access.并以.log结尾,pattern定义日志内容格式,具体字段表示可以查看tomcat官方文档   -->
</Host>
<Host name="manager.test.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<!--   定义一个主机名为man.test.com,应用程序目录是$CATALINA_HOME/webapps,自动解压,自动部署   -->
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="172.23.136.*" />
<!--   定义远程地址访问策略,仅允许172.23.136.*网段访问该主机,其他的将被拒绝访问  -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/web/bbs/logs"
prefix="bbs_access." suffix=".log"
pattern="%h %l %u %t "%r" %s %b" />
<!--   定义该主机的访问日志      -->
</Host>
</Engine>
</Service>
</Server>

conf/tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager-gui" />
<!--  定义一种角色名为:manager-gui    -->
<user username="cz" password="manager$!!110" roles="manager-gui" />
<!--  定义一个用户的用户名以及密码,并赋予manager-gui的角色    -->
</tomcat-users>


元素名


属性


解释


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
方式记录的值更多

<Server>元素

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

server.xml 配置详解[转]” src=”http://image13.360doc.com/DownloadImg/2010/08/0720/4484024_1.gif” alt=”” align=”top”>
<
Service
name
=”Catalina”
>

server.xml 配置详解[转]” src=”http://image13.360doc.com/DownloadImg/2010/08/0720/4484024_1.gif” alt=”” align=”top”>
<
Engine
name
=”Catalina”
defaultHost
=”localhost”
debug
=”0”
>

1>className指定实现Engine接口的类,默认值为StandardEngine

2>defaultHost指定处理客户的默认主机名,在<Engine>中的<Host>子元素中必须定义这一主机

3>name定义Engine的名字

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

<Host>元素

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

server.xml 配置详解[转]” src=”http://image13.360doc.com/DownloadImg/2010/08/0720/4484024_1.gif” alt=”” align=”top”>
<
Context
path
=”/sample”
docBase
=”sample”
debug
=”0”
reloadbale
=”true”
>

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

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

3>reloadable如果这个属性设为true, Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-
INF/lib目录CLASS文件的改运.如果监视到有class文件被更新,服务器自重新加载Web应用

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

4>useNaming指定是否支持JNDI,默认值为了true
在<Context>元素中可以包含如下元素

<Logger>, <Realm>, <Resource>, <ResourceParams>

<Connector>元素

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

server.xml 配置详解[转]” src=”http://image13.360doc.com/DownloadImg/2010/08/0720/4484024_1.gif” alt=”” align=”top”>
enableLookups
=”false”
redirectPort
=”8443”
acceptCount
=”100”
debug
=”0”

server.xml 配置详解[转]” src=”http://image13.360doc.com/DownloadImg/2010/08/0720/4484024_1.gif” alt=”” align=”top”>

<
Connection
port
=”8009”
enableLookups
=”false”
redirectPort
=”8443”
debug
=”0”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: