1. 安装Tomcat
到官网下载http://tomcat.apache.org/
把下载文件复制到指定,并解压,即可使用
2. 配置说明
目录说明
文件夹 |
说明 |
bin |
存放Tomcat启动、停止服务程序以及一些其他脚本程序 |
conf |
存放Tomcat服务器的各种配置文件,最主要server.xml |
lib |
存放Tomcat服务器支撑jar包 |
logs |
存放日志文件 |
temp |
存放临时文件 |
webapps |
web应用所在目录,外界访问web资源的存放目录 |
work |
Tomcat工作目录,默认情况下把编译JSP文件生成的servlet类文件放于此目录下 |
conf下文件说明
文件 |
说明 |
server.xml |
Tomcat 服务的主要配置文件 |
catalina.properties |
JVM参数、系统属性等 |
catalina.policy |
Tomcat的权限控制 |
web.xml |
默认web配置文件 |
tomcat-users.xml |
Tomcat 认证配置文件 |
logging.properties |
Log 配置文件 |
server.xml主要配置说明
元素名 |
属性 |
解释 |
server |
port |
指定一个端口,这个端口负责监听关闭tomcat 的请求 |
shutdown |
指定向端口发送的命令字符串(需要自行修改) |
|
Connector |
port |
指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求 |
minProcessors |
服务器启动时创建的处理请求的线程数 |
|
maxProcessors |
最大可以创建的处理请求的线程数 |
|
enableLookups |
调用request.getRemoteHost() 时是否通过DNS查询主机名 |
|
acceptCount |
指定可以放到处理队列中的请求数,超过这个数的请求将不予处理 |
|
connectionTimeout |
指定超时的时间数( 以毫秒为单位) |
3. 优化和加固Tomcat
屏蔽 AJP
注释或者删除server.xml中的 Connector节点
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
删除webapps下文件
删除webapps下原有所有文件
隐藏版本
在Connector节点增加server属性配置
配置shutdown端口
<Serverport="未被占用的端口" shutdown="较为复杂的字符串">
启动线程池
v Service节点下增加Executor节点(默认下为注释状态,打开后调整即可):
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="1000" minSpareThreads="20" maxIdleTime="60000" maxQueueSize="100"/>
v Connector节点调整,:
增加 executor="tomcatThreadPool"
关闭反向查询
Connector节点增加/调整 enableLookups ="false"
使用NIO模式
Connector节点增加/调整 protocol="org.apache.coyote.http11.Http11Nio2Protocol"
优化JVM
参考网址:http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html
配置项 |
说明 |
-server |
启用jdk 的 server 版 |
-Xmx |
最大堆内存,建议1024M或2048M |
-Xms |
最小堆内存,建议设置成和-Xmx一致 |
-Xss |
线程栈大小,默认1M,推荐256K |
-XX:+AggressiveOpts |
加快编译 |
-XX:+UseBiasedLocking |
锁机制的性能改善 |
-XX:+DisableExplicitGC |
关闭System.gc() |
-XX:MaxTenuringThreshold |
垃圾最大年龄 |
-XX:+UseConcMarkSweepGC |
使用CMS内存收集 |
-XX:+UseParNewGC |
设置年轻代为并行收集 |
-XX:+CMSParallelRemarkEnabled |
降低标记停顿 |
-XX+UseCMSCompactAtFullCollection |
在FULL GC的时候, 对年老代的压缩 |
-XX:LargePageSizeInBytes |
内存页的大小不可设置过大, 会影响Perm的大小 |
-XX:+UseFastAccessorMethods |
原始类型的快速优化 |
-XX:+UseCMSInitiatingOccupancyOnly |
使用手动定义初始化定义开始CMS收集 |
打开 Tomcat路径\\bin\\ catalina.sh,在最顶部加入,黄色部分根据实际调整:
JAVA_OPTS="-server -Xms1024M -Xmx1024M -Xss256K -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:+DisableExplicitGC -XX:MaxTenuringThreshold=15 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true"
配置实例
<Connector port="8080"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxHttpHeaderSize="8192"
executor="tomcatThreadPool"
enableLookups="false"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="400"
acceptorThreadCount="2"
redirectPort="8443" server="tomcat 1.0.0" />