由于经常要在测试环境上配置tomcat,所以这里就写篇博客记一下,免得要用的时候到处搜。
(1)到官网下载tomcat并上传到目录 /usr/local 下,解压,如下图所示
(2)配置tomcat目录下的 conf/server.xml 文件,一般主要修改几个地方:
a. http连接器的配置,示例:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"
acceptCount="500" maxThreads="20" minSpareThreads="5" redirectPort="8443" />
参照官方文档说明,一些常用的参数说明
acceptCount | 当没有空余线程可用时,请求队列最大长度,超过该长度后,请求将被拒绝。默认值为100 |
maxThreads | 最大线程并发数,默认值200 |
minSpareThreads | 最小线程并发数(就算没有任务执行),默认值10 |
b. 如果需求不需要使用到ajp连接器,可以注释掉
<!--
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
-->
(3)配置tomcat目录下的 bin/catalina.sh 文件,找到如下脚本
#JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"
# ----- Execute The Requested Command -----------------------------------------
在这两行脚本之间,增加如下jvm参数(仅供参考):
#My Jdk Setting
JAVA_OPTS="$JAVA_OPTS -server -Xms256m -Xmx256m -Xmn100m -Xss512k -XX:PermSize=64m -XX:MaxPermSize=64m -XX:+UseConcMarkSweepGC -XX:ParallelGCThreads=4 -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=2 -XX:+CMSScavengeBeforeRemark -XX:+CMSClassUnloadingEnabled -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:CMSInitiatingPermOccupancyFraction=92 -XX:+PrintCommandLineFlags -XX:+PrintFlagsFinal -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:$CATALINA_HOME/logs/gc.log -XX:ErrorFile=$CATALINA_HOME/logs/jvm_error.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$CATALINA_HOME/logs/dump"
如果想精确的知道gc时的停顿时间,还可以在jvm参数中添加:
-XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime
如果要开启监控,还可以在下一行增加如下jmx配置:
#My Jmx Setting(If need)
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9901 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=本机IP"
(4)最后一步,仍然是要配置系统防火墙。还是那句话,要么开放端口,要么关闭防火墙。