转载自:http://jczghost.iteye.com/blog/812672
1 tomcat6.0是目前最流行的开源web服务器.所以下面介绍一下tomcat6.0简单的优化配制方案.
2 为了提高安全性,一般情况下屏蔽 AJP
注释或者删除server.xml中的 Connector节点
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
3 内存设置
Windows环境下修改“%TOMCAT_HOME%/bin/catalina.bat”文件,在文件开头增加如下设置:set JAVA_OPTS=-Xms256m -Xmx512m
Linux环境下修改“%TOMCAT_HOME%/bin/catalina.sh”文件,在文件开头增加如下设置:JAVA_OPTS='-Xms256m -Xmx512m'
4 HTTP优化配置 server.xml
<!--
Tomcat6 minSpareThreads,maxSpareThreads参数不再被支持 需要在 Executor 中配置
maxThreads="600" ///最大线程数
minSpareThreads="100"///初始化时创建的线程数
maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
acceptCount="700"//指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
-->
<Connector executor="tomcatThreadPool"
port="80" protocol="HTTP/1.1"
maxThreads="600"
acceptCount="700"
connectionTimeout="20000"
redirectPort="8443"/>
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="100"/>
5 禁用DNS查询 enableLookups="false"
当web应用程序向要记录客户端的信息时,它也会记录客户端的IP地址或者通过域名服务器查找机器名转换为IP地址。
DNS查询需要占用网络,并且包括可能从很多很远的服务器或者不起作用的服务器上去获取对应的IP的过程,这样会消耗一定的时间。
为了消除DNS查询对性能的影响我们可以关闭DNS查询,方式是修改server.xml文件中的enableLookups参数值
<Connector executor="tomcatThreadPool"
port="80" protocol="HTTP/1.1"
enableLookups="false"
maxThreads="600"
acceptCount="700"
connectionTimeout="20000"
redirectPort="8443"
/>
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="100"/>
6 设置容器处理代码,解决乱码问题
<Connector executor="tomcatThreadPool"
port="80" protocol="HTTP/1.1"
enableLookups="false"
maxThreads="600"
acceptCount="700"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"
useBodyEncodingForURI="true"
/>
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="100"/>
7 自动加载 修改conf/context.xml
<Context reloadable="true">
8 Tomcat配置服务器
<Context path="/text" docBase="f:/text/11" debug="0" reloadable="true"/>
9 自定义部署目录,在Engine节点添加
<Host name="www.test.com" appBase="D:/Myweb" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="D:/Myweb/testweb"/>
</Host>
10 windows本地域名配置
C:/WINDOWS/system32/drivers/etc/hosts
实战过的
port:Tomcat服务器监听的端口号
maxHttpHeaderSize:Http的Header的最大限制
enableLookups="false" 使用允许DNS查询,通常情况下设置为false
redirectPort 服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
maxThreads Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。
acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。
connectionTimeout 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
minSpareThreads Tomcat初始化时创建的线程数。
maxSpareThreads 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
compression="on" 打开压缩功能
compressionMinSize 启用压缩的输出内容大小,这里面默认为2KB
compressableMimeType压缩类型
-->
<Connector port="4955" maxHttpHeaderSize="8192" useBodyEncodingForURI="true"
maxThreads="2048" minSpareThreads="100" maxSpareThreads="200"
enableLookups="false" redirectPort="8443" acceptCount="500"
compression="on" compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="10000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />