server.xml配置简介

Posted on 2011-12-16 13:34  无忧consume  阅读(352)  评论(0编辑  收藏  举报

server.xml配置简介         
下面是这个文件中的基本配置信息,更具体的配置信息见tomcat的文档         
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.xml中,Realm元素只设置了一个className属性,但此文件中也包含几个通过JDBC连接到数据库进行验证的示例(被注释掉了),通过Realm元素我们可以实现容器安全管理(Container     Managed     Security)。         
  
还有一些元素,如Parameter,loader,你可以通过tomcat的文档获取这些元素的信息。

 

1. <Server port="8005" shutdown="SHUTDOWN">    

  2. <!--属性说明    

  3.     port:指定一个端口,这个端口负责监听关闭Tomcat的请求    

  4.     shutdown:向以上端口发送的关闭服务器的命令字符串    

  5. -->    

  6.   <Listener className="org.apache.catalina.core.AprLifecycleListener" />    

  7.   <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />    

  8.   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />    

  9.   <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>    

 10.     

 11.   <GlobalNamingResources>    

 12.     

 13.     <Environment name="simpleValue" type="java.lang.Integer" value="30"/>    

 14.     

 15.     <Resource name="UserDatabase" auth="Container"    

 16.               type="org.apache.catalina.UserDatabase"    

 17.        description="User database that can be updated and saved"    

 18.            factory="org.apache.catalina.users.MemoryUserDatabaseFactory"    

 19.           pathname="conf/tomcat-users.xml" />     

 20.     

 21.   </GlobalNamingResources>    

 22. <!--    

 23.     每个Service元素只能有一个Engine元素.元素处理在同一个<Service>中所有<Connector>元素接收到的客户请求    

 24. -->    

 25.   <Service name="Catalina">    

 26. <!--属性说明    

 27.     name:Service的名称    

 28. -->    

 29.     

 30.     

 31.     

 32.     <!--    

 33.     Connector元素:由Connector接口定义.<Connector>元素代表与客户程序实际交互的给件,    

 34.                   它负责接收客户请求,以及向客户返回响应结果.    

 35.     -->    

 36.     <Connector port="80" maxHttpHeaderSize="8192"    

 37.                maxThreads="150" minSpareThreads="25" maxSpareThreads="75"    

 38.                enableLookups="false" redirectPort="8443" acceptCount="100"    

 39.                connectionTimeout="20000" disableUploadTimeout="true" />    

 40.     <!--属性说明    

 41.     port:服务器连接器的端口号,该连接器将在指定端口侦听来自客户端的请求    

 42.     enableLookups:如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端    

 43.                       的实际主机名;若为false则不进行DNS查询,而是返回其ip地址    

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

 45.     acceptCount:当所有可以使用的处理请求的线程都被用光时,可以放到处理队列中的请求数,超过这个数    

 46.                     的请求将不予处理,而返回Connection refused错误    

 47.         connectionTimeout:等待超时的时间数(以毫秒为单位)    

 48.     maxThreads:设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数目.默认值为200    

 49.         protocol:必须设定为AJP/1.3协议.    

 50.         address:如果服务器有两个以上IP地址,该属性可以设定端口监听的IP地址,默认情况下,端口会监听服务器上所有IP地址.    

 51.     minProcessors:服务器启动时创建的处理请求的线程数,每个请求由一个线程负责    

 52.     maxProcessors:最多可以创建的处理请求的线程数    

 53.     minSpareThreads:最小备用线程     

 54.         maxSpareThreads:最大备用线程    

 55.     debug:日志等级    

 56.     disableUploadTimeout:禁用上传超时,主要用于大数据上传时    

 57.     -->    

 58.     

 59.     

 60.     <Connector port="8009"     

 61.                enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />    

 62.     

 63.         

 64.     <Engine name="Catalina" defaultHost="localhost">    

 65.     <!--属性说明    

 66.     name:对应$CATALINA_HOME/config/Catalina中的Catalina     

 67.         defaultHost:对应Host元素中的name属性,也就是和$CATALINA_HOME/config/Catalina/localhost中的localhost    

 68.             缺省的处理请求的虚拟主机名,它至少与其中的一个Host元素的name属性值是一样的    

 69.         debug:日志等级    

 70.     -->    

 71.     

 72.       <Realm className="org.apache.catalina.realm.UserDatabaseRealm"    

 73.              resourceName="UserDatabase"/>    

 74.     <!--    

 75.     由Host接口定义.一个Engine元素可以包含多个<Host>元素.    

 76.         每个<Host>的元素定义了一个虚拟主机.它包含了一个或多个Web应用.    

 77.     -->    

 78.       <Host name="localhost" appBase="webapps"    

 79.        unpackWARs="true" autoDeploy="true"     

 80.        xmlValidation="false" xmlNamespaceAware="false">    

 81.     <!--属性说明    

 82.     name:在此例中一直被强调为$CATALINA_HOME/config/Catalina/localhost中的localhost    

 83.          虚拟主机名    

 84.         debug:是日志的调试等级     

 85.         appBase:默认的应用路径,也就是把应用放在一个目录下,并在autoDeploy为true的情况下,可自动部署应用此路径相对于                   $CATALINA_HOME/ (web applications的基本目录)    

 86.         unpackWARs:设置为true,在Web应用为*.war是,解压此WAR文件.     

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

 88.         autoDeploy:默认为true,表示如果有新的WEB应用放入appBase 并且Tomcat在运行的情况下,自动载入应用     

 89.     -->    

 90.     

 91.     <Context path="/demm" docBase="E:\\projects\\demm\\WebRoot" debug="0" reloadable="true" >     

 92.         </Context>    

 93.     <!--属性说明    

 94.     path:访问的URI,如:http://localhost/是我的应用的根目录,访问此应用将用:http://localhost/demm进行操作,此元素必须.     

 95.         表示此web application的URL的前缀,用来匹配一个Context。请求的URL形式为http://localhost:8080/path/*    

 96.         docBase:WEB应用的目录,此目录必须符号Java WEB应用的规范.     

 97.              web application的文件存放路径或者是WAR文件存放路径    

 98.         debug:日志等级     

 99.         reloadable:是否在程序有改动时重新载入,设置成true会影响性能,但可自动载入修改后的文件.    

100.            如果为true,则Tomcat将支持热部署,会自动检测web application的/WEB-INF/lib     

101.                    和/WEB-INF/classes目录的变化,自动装载新的JSP和Servlet,我们可以在不重起    

102.                    Tomcat的情况下改变web application    

103.     -->    

104.       </Host>    

105.     

106.     </Engine>    

107.     

108.   </Service>    

109.     

110. </Server>   

   1. <Server port="8005" shutdown="SHUTDOWN"> 

   2. <!--属性说明 

   3.     port:指定一个端口,这个端口负责监听关闭Tomcat的请求 

   4.     shutdown:向以上端口发送的关闭服务器的命令字符串 

   5. --> 

   6.   <Listener className="org.apache.catalina.core.AprLifecycleListener" /> 

   7.   <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" /> 

   8.   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> 

   9.   <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/> 

  10.  

  11.   <GlobalNamingResources> 

  12.  

  13.     <Environment name="simpleValue" type="java.lang.Integer" value="30"/> 

  14.  

  15.     <Resource name="UserDatabase" auth="Container" 

  16.               type="org.apache.catalina.UserDatabase" 

  17.        description="User database that can be updated and saved" 

  18.            factory="org.apache.catalina.users.MemoryUserDatabaseFactory" 

  19.           pathname="conf/tomcat-users.xml" /> 

  20.  

  21.   </GlobalNamingResources> 

  22. <!-- 

  23.     每个Service元素只能有一个Engine元素.元素处理在同一个<Service>中所有<Connector>元素接收到的客户请求 

  24. --> 

  25.   <Service name="Catalina"> 

  26. <!--属性说明 

  27.     name:Service的名称 

  28. --> 

  29.  

  30.  

  31.  

  32.     <!-- 

  33.     Connector元素:由Connector接口定义.<Connector>元素代表与客户程序实际交互的给件, 

  34.                   它负责接收客户请求,以及向客户返回响应结果. 

  35.     --> 

  36.     <Connector port="80" maxHttpHeaderSize="8192" 

  37.                maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 

  38.                enableLookups="false" redirectPort="8443" acceptCount="100" 

  39.                connectionTimeout="20000" disableUploadTimeout="true" /> 

  40.     <!--属性说明 

  41.     port:服务器连接器的端口号,该连接器将在指定端口侦听来自客户端的请求 

  42.     enableLookups:如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端 

  43.                       的实际主机名;若为false则不进行DNS查询,而是返回其ip地址 

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

  45.     acceptCount:当所有可以使用的处理请求的线程都被用光时,可以放到处理队列中的请求数,超过这个数 

  46.                     的请求将不予处理,而返回Connection refused错误 

  47.         connectionTimeout:等待超时的时间数(以毫秒为单位) 

  48.     maxThreads:设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数目.默认值为200 

  49.         protocol:必须设定为AJP/1.3协议. 

  50.         address:如果服务器有两个以上IP地址,该属性可以设定端口监听的IP地址,默认情况下,端口会监听服务器上所有IP地址. 

  51.     minProcessors:服务器启动时创建的处理请求的线程数,每个请求由一个线程负责 

  52.     maxProcessors:最多可以创建的处理请求的线程数 

  53.     minSpareThreads:最小备用线程  

  54.         maxSpareThreads:最大备用线程 

  55.     debug:日志等级 

  56.     disableUploadTimeout:禁用上传超时,主要用于大数据上传时 

  57.     --> 

  58.  

  59.  

  60.     <Connector port="8009"  

  61.                enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /> 

  62.  

  63.      

  64.     <Engine name="Catalina" defaultHost="localhost"> 

  65.     <!--属性说明 

  66.     name:对应$CATALINA_HOME/config/Catalina中的Catalina  

  67.         defaultHost:对应Host元素中的name属性,也就是和$CATALINA_HOME/config/Catalina/localhost中的localhost 

  68.             缺省的处理请求的虚拟主机名,它至少与其中的一个Host元素的name属性值是一样的 

  69.         debug:日志等级 

  70.     --> 

  71.  

  72.       <Realm className="org.apache.catalina.realm.UserDatabaseRealm" 

  73.              resourceName="UserDatabase"/> 

  74.     <!-- 

  75.     由Host接口定义.一个Engine元素可以包含多个<Host>元素. 

  76.         每个<Host>的元素定义了一个虚拟主机.它包含了一个或多个Web应用. 

  77.     --> 

  78.       <Host name="localhost" appBase="webapps" 

  79.        unpackWARs="true" autoDeploy="true" 

  80.        xmlValidation="false" xmlNamespaceAware="false"> 

  81.     <!--属性说明 

  82.     name:在此例中一直被强调为$CATALINA_HOME/config/Catalina/localhost中的localhost 

  83.          虚拟主机名 

  84.         debug:是日志的调试等级  

  85.         appBase:默认的应用路径,也就是把应用放在一个目录下,并在autoDeploy为true的情况下,可自动部署应用此路径相对于                   $CATALINA_HOME/ (web applications的基本目录) 

  86.         unpackWARs:设置为true,在Web应用为*.war是,解压此WAR文件.  

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

  88.         autoDeploy:默认为true,表示如果有新的WEB应用放入appBase 并且Tomcat在运行的情况下,自动载入应用  

  89.     --> 

  90.  

  91.     <Context path="/demm" docBase="E:\\projects\\demm\\WebRoot" debug="0" reloadable="true" >  

  92.         </Context> 

  93.     <!--属性说明 

  94.     path:访问的URI,如:http://localhost/是我的应用的根目录,访问此应用将用:http://localhost/demm进行操作,此元素必须.  

  95.         表示此web application的URL的前缀,用来匹配一个Context。请求的URL形式为http://localhost:8080/path/* 

  96.         docBase:WEB应用的目录,此目录必须符号Java WEB应用的规范.  

  97.              web application的文件存放路径或者是WAR文件存放路径 

  98.         debug:日志等级  

  99.         reloadable:是否在程序有改动时重新载入,设置成true会影响性能,但可自动载入修改后的文件. 

 100.            如果为true,则Tomcat将支持热部署,会自动检测web application的/WEB-INF/lib  

 101.                    和/WEB-INF/classes目录的变化,自动装载新的JSP和Servlet,我们可以在不重起 

 102.                    Tomcat的情况下改变web application 

 103.     --> 

 104.       </Host>  

 105.  

 106.     </Engine> 

 107.  

 108.   </Service> 

 109.  

 110. </Server>  

 

tomcat中的server.xml元素详解

 

元素名

属性

解释

 

 

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

 

 

 

元素

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

 

 

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

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

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

 

 

元素

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

 

 

 

第一个处理所有直接由Tomcat服务器接收的web客户请求.

第二个处理所有由Apahce服务器转发过来的Web客户请求

 

1>className 指定实现org.apahce.catalina.Service接口的类.默认为org.apahce.catalina.core.StandardService

2>name定义Service的名字

 

 

元素

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

 

 

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

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

3>name定义Engine的名字

 

在可以包含如下元素, , ,

 

 

元素

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

 

 

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

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

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

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

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

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

7>name定义虚拟主机的名字

 

在元素中可以包含如下子元素

, , ,

 

 

元素

它由Context接口定义.是使用最频繁的元素.每个可以包含多个元素.每个web应用有唯一

的一个相对应的Context代表web应用自身.servlet容器为第一个web应用创建一个

ServletContext对象.

 

 

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

 

 

在元素中可以包含如下元素

, , ,

 

 

Connector元素

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

 

 

 

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

 

Connector元素共用属性

1>className指定实现Connector接口的类

2>enableLookups如果设为true,表示支持域名解析,可以把IP地址解析为主机名.WEB应用中调用request.getRemoteHost方法返回客户机主机名.默认值为true

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

HttpConnector元素的属性

1>className实现Connector的类

2>port设定Tcp/IP端口,默认值为8080,如果把8080改成80,则只要输入http://localhost即可

因为TCP/IP的默认端口是80

3>address如果服务器有二个以上ip地址,此属性可以设定端口监听的ip地址.默认情况下,端口会监听服务器上所有的ip地址

4>bufferSize设定由端口创建的输入流的缓存大小.默认值为2048byte

5>protocol设定Http协议,默认值为HTTP/1.1

6>maxThreads设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数目.默认值为200

7>acceptCount设定在监听端口队列的最大客户请求数量,默认值为10.如果队列已满,客户必须等待.

8>connectionTimeout定义建立客户连接超时的时间.如果为-1,表示不限制建立客户连接的时间

JkConnector的属性

1>className实现Connector的类

2>port设定AJP端口号

3>protocol必须设定为AJP/1.3

Copyright © 2024 无忧consume
Powered by .NET 9.0 on Kubernetes