寂寞大萝卜 发表于 2017-1-18 10:13:25

浅谈tomcat一些细节配置

  作为免费、高效、开源的web容器,tomcat一直是企业及个人的首选,现就个人对tomcat细节配置进行简单的概括。
   
  1.tomcat在服务器允许的情况下,可以正对其内存配置优化,提高其运行效率。
   
  修改tomcat/bin目录下,WIN下catalina.bat文件,Linux下catalina.sh
  加入以下行
  WIN : set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx256m
  Linux:JAVA_OPTS =“-Xms256m –Xmx1024m –XX:MaxNewsize=1024m –XX:MaxPermSize=1024m”
    如果服务器内存只有1G,则推荐“-Xms128m -Xmx512m”,其他可依据运行及机器配置进行会对性的优化。
 
2.修改tomcat端口、项目路径、数据源配置问题。

 
<Connector URIEncoding="UTF-8" acceptCount="1000" connectionTimeout="20000" enableLookups="false" maxProcessors="900" maxSpareThreads="300" maxThreads="1000" minProcessors="100" minSpareThreads="200" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>


   
  port为端口配置,可以任意,访问时注意 http://ip:port/ProjectName,以上配置中URIEncoding="UTF-8"指定tomcat运行时的发送URL的编码格式,tomcat默认编码为GB2312(在get方式提交页面信息时,默认为tomcat编码格式,post提交可以设置提交编码格式。)
   
   
<Host name="localhost" appBase="/var/www/webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">

   
  appBase为项目存放路径,可以根据需要修改,默认为tomcat下的webapps目录。
   
   
 url=”jdbc:mysql://ip:port/DBName?useUnicode=true&amp;characterEncoding=utf-8&amp;autoReconnect=true”

   
  tomcat下配置MySQL数据源时,Mysql服务器默认的“wait_timeout”是8小时,也就是说一个connection空闲超过8个小时,Mysql将自动断开该 connection。这就是问题的所在,在C3P0 pools中的connections如果空闲超过8小时,Mysql将其断开,而C3P0并不知道该connection已经失效,如果这时有 Client请求connection,C3P0将该失效的Connection提供给Client,将会造成上面的异常。
  
解决办法:
修改tomcat下context.xml连接url配置,添加autoReconnect=true属性。
   
   
   
  3.修改tomcat产生的日志,使其以log4j的方式存放。
   
  log4j的配置
  
######################################################################
  # 设定logger的root level为DEBUG,指定的输出目的地(appender)为file
log4j.rootLogger=INFO, file , stdout
  # 设定stdout控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}] %5p %c{2} \"%m\"%n
  # 设定输出位置,此处设定tomcat目录的logs下,文件名为bugmgrsys.log。
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${catalina.home}/logs/projectLogs.log
log4j.appender.file.MaxFileSize=1024KB
  # 设定制定的file使用的PatternLayout.
# 有关ConversionPattern中的转意字符的含义参考说明
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{HH:mm:ss} %-5p [%C] (%F:%L) - %m%n
  ################################################################
  tomcat6-------lib
                |     |--------log4j.jar
                |     |--------log4j.properites
                |
                |----bin
                       |--------tomcat-juli.jar
  
################################################################
在Tomcat6.0中,
  1.将tomcat-juli-adapters.jar,log4j-1.2.13.jar,log4j.properties复制到/usr/local/tomcat/lib下面.
  
2.进入/usr/local/tomcat/bin目录,替换bin目录下的tomcat-juli.jar为jars文件夹中的tomcat-juli.jar.
   
  3.删除或重命名conf目录下的logging.properties文件
  mv logging.properties  loggingRe.properties (移动文件)
  
4.然后启动tomcat,就可以在/usr/local/tomcat/logs 下看到all.log了
   
  配置及文件可以查看附件。
   
  参考
  http://joedanny.iteye.com/blog/154521
   
  http://blog.csdn.net/tsun7263/archive/2009/07/09/4335219.aspx
   
页: [1]
查看完整版本: 浅谈tomcat一些细节配置