Tomcat在现实应用中的简单设置

Tomcat在实际应用中的简单设置

 

做一个笔记,欢迎大家拍砖和补充。

 

 

一、性能设置
1、设置jdk路径、调整jvm内存
修改catalina.sh(catalina.bat),在最前面添加如下两行:
#tdq add
(aix/linux)
JAVA_HOME=/usr/java5
JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms1024m -Xmx1536m"
(window)
set JAVA_HOME="C:\java5"
set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m
注意,如果系统设置了环境变量JAVA_HOME则可省略第一个参数。



2、调整连接数、端口
打开/app/tomcat/conf
找到<Connector port=.../>,port即是端口,默认8080,修改成自己需要的;
连接数修改如下
<Connector
port="80"               maxThreads="600" minSpareThreads="100" maxSpareThreads="300"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               debug="0" connectionTimeout="30000"
               disableUploadTimeout="true" URIEncoding="UTF-8"/>


maxThreads:Tomcat可创建的最大的线程数,每一个线程处理一个请求;
minSpareThreads:最小备用线程数,tomcat启动时的初始化的线程数;
maxSpareThreads:最大备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程;
acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,就是被排队的请求数,超过这个数的请求将拒绝连接。
connnectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

URIEncoding:POST提交时的编码格式。
enableLookups:是否允许DNS查询。


3、启用线程池(tomcat6);
打开/app/tomcat/conf,
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"

        maxThreads="550" minSpareThreads="175"/><!--可容1.2w人在线、每分钟千人登陆-->
然后找到<Connector port=.../>,添加一个属性:executor="tomcatThreadPool" 即可。

ps:配合数据库连接池

<house-keeping-sleep-time>30000</house-keeping-sleep-time>
        <maximum-new-connections>50</maximum-new-connections>
        <prototype-count>10</prototype-count>
        <maximum-connection-count>700</maximum-connection-count>
        <minimum-connection-count>25</minimum-connection-count>
        <!--<maximum-active-time>3600000</maximum-active-time>-->
        <simultaneous-build-throttle>50</simultaneous-build-throttle>

可容1.2w人在线、每分钟千人登陆。

 

4、修改日志记录

一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响。
a、可通过修改conf/logging.properties日志配置文件来屏蔽掉这部分的日志信息。
1catalina.org.apache.juli.FileHandler.level = WARNING //输出级别
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs //保存路径
1catalina.org.apache.juli.FileHandler.prefix = catalina.   //日志文件名前缀

将level级别设置成WARNING就可以大量减少日志的输出,当然也可以设置成OFF,直接禁用掉。
一般日志的级别有:
SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)

b、可以对不同应用的定义差异化的输出级别(注意第一个字符是数字,意味着可以定义多个输出控制哦),具体可以参考conf/logging.properties。



二、安全设置
1、/app/tomcat/conf/web.xml
listings=false

2、/app/tomcat/conf/tomcat-users.xml
去掉所有用户信息

3、删除/app/tomcat/conf/下的Catalina文件夹。

4、/app/tomcat/webapps只保留ROOT和项目相关的文件夹,其余如webdav、balance等删除之。

 

5、对于linux/unix,尽量创建一个tomcat专用的用户,并只对指定的文件夹设置读写权限,如:

useradd tomcat  --创建tomcat用户

passwd tomcat  --修改tomcat用户的密码

mkdir /tomcat_DIR  --创建tomcat_DIR目录,作为tomcat home路径。

chown tomcat /tomcat_DIR     --修改tomcat_DIR目录的拥有者

chown -P tomcat /tomcat_DIR/*  --修改tomcat_DIR子目录、文件的拥有者

chmod -P u+rwx /tomcat_DIR/bin/*.sh  --增加可执行权限(必须在更换了拥有者之后哦)

 

三、其他设置

1、如何使tomcat下载rar、chm文件时弹出对话框而不是自动打开?

 

vi /tomcat5.0.28/conf/web.xml
添加内容

    <mime-mapping>
        <extension>rar</extension>
        <mime-type>application/rar</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>chm</extension>
        <mime-type>application/mshelp</mime-type>
    </mime-mapping>
 

然后清空ie缓存重新打开即可。

 

2、新增一个应用

在server.xml的Host标签中增加行
<Context displayName="OA" docBase="/app/web-apps/GACWP" path=/OA"" />
path代表上下文名称,空表示是根路径。