做一个笔记,欢迎大家拍砖和补充。
一、性能设置
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代表上下文名称,空表示是根路径。