tomcat 的 server.xml配置解
<!--它代表整个容器,是Tomcat实例的顶层元素.由org.apache.catalina.Server接口来定义.
它包含一个<Service>元素.并且它不能做为任何元素的子元素
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>
<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>
<!-- 指定service的名字
-->
<Service name="Catalina">
<!--The connectors can use a shared executor, you can define one or more named thread pools-->
<!--
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4"/>
-->
<!-- 表示客户端和service之间的连接
port:指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求
minProcessors:服务器启动时创建的处理请求的线程数
maxProcessors:最大可以创建的处理请求的线程数
enableLookups:如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,
若为false则不进行DNS查询,而是返回其ip地址
redirectPort:指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
connectionTimeout:指定超时的时间数(以毫秒为单位)
enableLookups:如果设为true,表示支持域名解析,可以把IP地址解析为主机名.WEB应用中调用
request.getRemoteHost方法返回客户机主机名.默认值为true
-->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- Define an AJP 1.3 Connector on port 8009 -->
<!-- apache整合tomcat要用到这个接口 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<!-- Engine(表示指定service中的请求处理机,接收和处理来自Connector的请求) -->
<Engine name="Catalina" defaultHost="localhost">
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase".Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm.-->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<!-- Define the default virtual host
Note: XML Schema validation will not work with Xerces 2.2.
-->
<Host name="localhost"appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
-->
<!--
<Context docBase="D:\test2" path="/test2"
privileged="true" >
</Context>
-->
</Host>
<!--host(表示一个虚拟主机)
name:指定主机名
appBase:应用程序基本目录,即存放应用程序的目录
unpackWARs:如果为true,则tomcat会自动将WAR文件解压,
否则不解压,直接从WAR文件中运行应用程序
alias:指定主机别名,可以指定多个别名
className:指定实现Host接口的类.默认值为StandardHost
autoDeploy;如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase
下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用
deployOnStartup:如果此项设为true,表示Tomcat服务器启动时会自动发布appBase目录下所有
的Web应用.如果Web应用中的server.xml没有
相应的<Context>元素,将采用Tomcat默认的Context
-->
<Host name="www.xxx.com" appBase="D:/test"
unpackWARs="true" autoDeploy="true" xmlValidation="false"
xmlNamespaceAware="false">
<Context docBase="D:/test/" path="/c1"
privileged="true" antiResourceLocking="false"
antiJARLocking="false" autodeploy="true">
</Context>
<!-- 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的情况下改变应用程序
cookies:指定是否通过Cookies来支持Session,默认值为true
useNaming:指定是否支持JNDI,默认值为了true
-->
<Context path="/book"
docBase="D:\java_work\work_space\book\WebRoot"
reloadable="true"
debug="0"
workDir="D:\java_work\work_space\book\work" privileged="true">
</Context>
</Host>
</Engine>
</Service>
</Server>
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方式记录的值更多
<Engine>元素
每个Service元素只能有一个Engine元素.元素处理在同一个<Service>中所有<Connector>元素接收到的客户请求.由org.apahce.catalina.Engine接口定义.
在<Engine>可以包含如下元素<Logger>, <Realm>, <Value>, <Host>
页:
[1]