欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Tomcat中的重要配置

程序员文章站 2024-01-12 19:20:40
...

由于不是从事WEB开发,所以一直以来对Tomcat都没有深入研究,只了解如何修改端口、部署应用等简单操作。最近公司服务器发生了一些异常现象,需要分析Tomcat的连接日志,故借此深入了解Tomcat的重要配置。

注:Tomcat版本为5.5.20

 

1、JVM堆栈调整

    众所周知,普通Java应用,配置启动参数 -Xms -Xmx即可。Tomcat中大同小异,修改%TOMCAT_HOME%\bin目录下的catalina.bat脚本中的JAVA_OPTS变量。

     JAVA_OPTS中的初始配置如下:

set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.log

 

 

 


    如果需要配置-Xms256m -Xmx768m(初始化内存大小为256m,可以使用的最大内存为768m),则配置如下:

set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx768m -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"

 

 

 


 

2、Http Connector

     在Apache Tomcat的Doc中,对该项配置作了详细的说明。默认配置如下:

<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />

 

 

 


  •      port:Tomcat服务器监听的端口号
  •      maxHttpHeaderSize:Http的Header的最大限制
  •      maxThreads:Tomcat可创建的最大的线程数
  •      minSpareThreads:初始化创建的线程数
  •      maxSpareThreads:一旦创建的线程超过这个数,Tomcat就将关闭不再需要的Socket线程
  •      enableLookups:使用允许DNS查询,通常情况下设置为false
  •      acceptCount:当所有可以使用的处理请求的线程树都被使用时,可以放到请求队列中的请求数,超过这个数的请求将不予处理。其实,该属性与ServerSocket(int port,int backlog)中的backlog参数意义相同,具体可参考ServerSocket的JDK API
  •      connectionTimeout:网络连接超时,单位毫秒。设置为0表示永不超时 

      除此之外,还有很多有用的属性,例如:maxPostSize,maxSavePostSize,maxKeepAliveRequests等,具体用法可以参考Tomcat的Doc

 

3、Access Log Valve设置

   该Valve用于记录每次Tomcat服务器的连接,默认情况下该选项是关闭的。同时,该日志可用于其它分析工具进行日志分析和统计。配置如下:

   <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>


  •   directory:该日志存放的目录
  •   prefix:该日志文件的名称
  •   suffix:该日志文件的后缀名
  •   pattern:日志显示的格式,通常情况下用common或combined。具体格式相关字段的意义可以参考Tomcat Doc

4、Remote Address Filter

   IP过滤功能,对于服务器的安全配置非常有用。可以用于过滤来自请求的主机或IP,并允许拒绝那些主机或IP。

     配置如下:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow=" 127.0.0.1" deny=""/>