Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
是目前的开发焦点。它在汲取了Tomcat 6.0.x优点的基础上,实现了对于Servlet 3.0、JSP 2.2和EL 2.2等特性的支持。除此以外的改进列表如下:
· Web应用内存溢出侦测和预防
· 增强了管理程序和服务器管理程序的安全性
· 一般 CSRF保护
· 支持web应用中的外部内容的直接引用
· 重构 (connectors, lifecycle)及很多核心代码的全面梳理
1. 配置方法
启动内存参数的配置
tomcat/bin/catalina.bat 如果是linux 就是 catalina.sh
在rem 的后面增加如下参数
set JAVA_OPTS= -Xms256m -Xmx256m -XX:MaxPermSize=64m
修改Tomcat的JDK目录
打开tomcat/bin/catalina.bat
在最后一个rem后面增加
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0
增加虚拟目录
/tomcat/conf/server.xml
第一行是以前默认存在的,第二行是新增的
<Context path="" docBase="ROOT" debug="0" reloadable="true"></Context>
<Context path="/jsp/a" reloadable="true" docBase="E:\workplace\www.java2000. net\WebContent" />
使用默认配置的tomcat,另外虚拟目录也可这设置:
<Context path="/test" docBase="webContent" reloadable="true"/>
因为默认情况下,tomcat启动过程中配置虚拟目录的时候会从 webapps目录下查找webContent应用。
这样配置好了,即使以后从一台服务器移植到另一台服务器,不做任何修改也能运行起来。
GET方式URL乱码问题解决
打开 tomcat/conf/server.xml
查找下面这部分,在最后增加一段代码就可以了。
<Connector port="80" maxHttpHeaderSize="8192"
.................
URIEncoding="UTF-8" useBodyEncodingForURI="true"
...............
/>
其中的UTF-8 请根据你的需要自己修改,比如GBK
虚拟主机配置文件
tomcat/conf/server.xml
<!-- 默认的主机 -->
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="ROOT" debug="0" reloadable="true"></Context>
...
</host>
<!-- 以下是新增的虚拟主机 -->
<Host name="" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="d:\" debug="0" reloadable="true"></Context>
<!-- 虚拟目录 -->
<Context path="/count" docBase="d:\counter.java2000. net" debug="0" reloadable="true"></Context>
</Host>
<Host name="java2000. net" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="d:\ " debug="0" reloadable="true"></Context>
<Context path="/count" docBase="d:\counter.java2000. net" debug="0" reloadable="true"></Context>
</Host>
2. Tomcat优化
思路:
首先要掌握未优化之前,服务器性能现状;
设置虚拟机内存,性能提升明显;
设置tomcat运行模式略微有提高;
设置tomcat线程池,一般设置的比较大以免成为瓶颈;
逐步递增的性能调试计划,从较少请求数,较低并发开始逐步递增。直到性能明显下降位置;
以吞吐率、并发、响应时间等为关键性能指标;
区分裸奔性能和分布式调用的性能;
尽量覆盖全部代码运行,服务启动要为性能测试做特殊处理(callId,timeStamp);
做AB压力测试,可以编写个shell夜间运行并将结果重定向;
实现:
(1)屏蔽AJP
(2)启用NIO或者APR模式运行
(3)调整nio的线程池
(4)调整内存
(5)启用APR
(6)调整线程池