Tomcat 配置详解和调优

Service.xmlServer.xml配置文件用于对整个容器进行相关的配置 。
 
<Server>元素:是整个配置文件的根元素 。表示整个Catalina容器 。
 
属性:className:实现了org.Apache.catalina.Server接口的类名 , 标准实现类是org.apache.catalina.core.StandardServer类 。Port:Tomcat服务器监听用于关闭Tomcat服务器的命令(必须)Shutdown:发送到端口上用于关闭Tomcat服务器的命令 。
例:<Serverport=”8005” shutdown=”SHUTDOWN”>
 
<Connector>元素:连接器 , 负责接收客户的请求 , 以及向客户端回送响应的消息 。
 
HTTP连接器:属性:

  • allowTrace:是否允许HTTP的TRACE方法 , 默认为false
  • emptySessionPath:如果设置为true , 用户的所有路径都将设置为/ , 默认为false 。
  • enableLookups:调用request、getRemoteHost()执行DNS查询 , 以返回远程主机的主机名 , 如果设置为false , 则直接返回IP地址 。
  • maxPostSize:指定POST方式请求的最大量 , 没有指定默认为2097152 。
  • protocol:值必须为HTTP1.1 , 如果使用AJP处理器 , 该值必须为AJP/1.3
  • proxyName:如这个连接器正在一个代理配置中被使用 , 指定这个属性 , 在request.getServerName()时返回
  • redirectPort:如连接器不支持SSL请求 , 如收到SSL请求 , Catalina容器将会自动重定向指定的端口号 , 让其进行处理 。
  • scheme:设置协议的名字 , 在request.getScheme()时返回 , SSL连接器设为”https” , 默认为”http”
  • secure:在SSL连接器可将其设置为true , 默认为false
  • URIEncoding:用于解码URL的字符编码 , 没有指定默认值为ISO-8859-1
  • useBodyEncodingForURI:主要用于Tomcat4.1.x中 , 指示是否使用在contentType中指定的编码来取代URIEncoding , 用于解码URI查询参数 , 默认为false
  • xpoweredBy:为true时 , Tomcat使用规范建议的报头表明支持Servlet的规范版本 , 默认为false
  • acceptCount:当所有的可能处理的线程都正在使用时 , 在队列中排队请求的最大数目 。当队列已满 , 任何接收到的请求都会被拒绝 , 默认值为10
  • bufferSize:设由连接器创建输入流缓冲区的大小 , 以字节为单位 。默认情况下 , 缓存区大的大小为2048字节
  • compressableMimeType:MIME的列表 , 默认以逗号分隔 。默认值是text/html , text/xml , text/plain
  • compression:指定是否对响应的数据进行压缩 。off:表示禁止压缩、on:表示允许压缩(文本将被压缩)、force:表示所有情况下都进行压缩 , 默认值为off
  • connectionTimeout:设置连接的超时值 , 以毫秒为单位 。默认值为60000=60秒
  • disableUploadTimeOut:允许Servlet容器 , 正在执行使用一个较长的连接超时值 , 以使Servlet有较长的时间来完成它的执行 , 默认值为false
  • maxHttpHeaderSize:HTTP请求和响应头的最大量 , 以字节为单位 , 默认值为4096字节
  • maxKeepAliveRequest:服务器关闭之前 , 客户端发送的流水线最大数目 。默认值为100
  • maxSpareThreads:允许存在空闲线程的最大数目 , 默认值为50
  • minSpareThreads:设当连接器第一次启协创建线程的数目 , 确保至少有这么多的空闲线程可用 。默认值为4
  • port:服务端套接字监听的TCP端口号 , 默认值为8080(必须)
  • socketBuffer:设Socket输出缓冲区的大小(以字节为单位) , -1表示禁止缓冲 , 默认值为9000字节
  • toNoDelay:为true时 , 可以提高性能 。默认值为true
  • threadPriority:设JVM中请求处理线程优先级 。默认值为NORMAL-PRIORITY
例:
<Connector port="8080" address="localhost"maxThreads="250" maxHttpHeaderSize="8192"emptySessionPath="true" protocol="HTTP/1.1"enableLookups="false" redirectPort="8181" acceptCount="100"connectionTimeout="20000" disableUploadTimeout="true" /> 
AJP连接器:用于将Apache与Tomcat集成在一起 , 当Apache接收到动态内容请求时 , 通过在配置中指定的端口号将请求发送给在此端口号上监听的AJP连接器组件 。


推荐阅读