1、配置Tomact的名称
当一台服务器启动太多的Tomact的时候,需要区别Tomact的名称,可以给启动的Tomact添加一个标题。如下:
在Tomact的bin目录下找到catalina.bat文件,用记事本打开。在中间找到 if "%TITLE%" == "" set TITLE=
在set TITLE中敲入你命名的Tomact的名称,重启Tomact即可。
2、配置Tomact的内存
在catalina.bat的第一行增加:
Java代码: set JAVA_OPTS=-server -Xms512m -Xmx2048m -XX:PermSize=64M -XX:MaxPermSize=512m -Djava.awt.headless=true
3、配置Tomact的虚拟文件路径
Tomact中配置虚拟文件路径(主要用于附件、图片等,前端直接使用虚拟路径访问附件、图片)
比如保存一张liuyuehu.jpg的图片,使用虚拟路径访问图片的配置:
在Tomact的localhost文件夹下面images.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<Context path="images" reloadable="false" docBase="D:\cdc\images"></Context>、
重启Tomact后,在浏览器中输入:http://127.0.0.1:8080/images/liuyuehu.jpg访问成功!虚拟图片路径配置成功!
4、配置Tomact中项目路径
Tomact集群时,不会采取每个Tomact都加载一份独立的代码,而使用共享同一份代码。使用tomcat配置项目路径来共享同一份代码。便于实施人员更新代码。
比如:都加载D:\java\project的代码。项目的上下文为 project(项目的上下文要和Tomact的localhost文件夹下面的文件XXX.xml名称一致)
在Tomact的localhost文件夹下面project.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/Admin" docBase="D:\java\project" debug="0" reloadable="false" ></Context>
重启Tomact后,在浏览器中输入:http://127.0.0.1:8080/project访问成功!虚拟图片路径配置成功!
5、Tomact中并发配置的优化
在Tomcat 配置文件 server.xml 中的 <Connector ... /> 配置中。
参数的说明:
minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为 10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为 75
acceptCount:允许的最大连接数,应大于等于 maxProcessors ,默认值为 100
enableLookups:是否反查域名,取值为: true 或 false 。为了提高处理能力,应设置为 false
connectionTimeout:网络连接超时,单位:毫秒。设置为 0 表示永不超时,这样设置有隐患的。通常可设置为 30000 毫秒。
其中和最大连接数相关的参数为maxProcessors 和 acceptCount 。如果要加大并发连接数,应同时加大这两个参数。
web server允许的最大连接数还受制于操作系统的内核参数设置,通常 Windows 是 2000 个左右, Linux 是 1000 个左右。
更改后的配置
<Connector port="8085" protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
minProcessors="10"
maxProcessors="100"
connectionTimeout="20000"
acceptCount="1000"
disableUploadTimeout="true"
redirectPort="8443" />
6、 调整连接器connector的并发处理能力
在Tomcat 配置文件server.xml 中的<Connector ... /> 配置中。
参数的说明:
maxThreads 客户请求最大线程数
minSpareThreads Tomcat初始化时创建的socket 线程数
maxSpareThreads Tomcat连接器的最大空闲socket 线程数
enableLookups 若设为true, 则支持域名解析,可把ip 地址解析为主机名
redirectPort 在需要基于安全通道的场合,把客户请求转发到基于SSL 的redirectPort 端口
acceptAccount 监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads )
connectionTimeout 连接超时
minProcessors 服务器创建时的最小处理线程数
maxProcessors 服务器同时最大处理线程数
URIEncoding URL统一编码
配置例子:
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
7、Tomact中的缓存处理
在Tomcat 配置文件server.xml 中的<Connector ... /> 配置中。
参数介绍:
compression打开压缩功能
compressionMinSize 启用压缩的输出内容大小,这里面默认为2KB
compressableMimeType压缩类型
connectionTimeout定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间
配置例子:
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>
8、Tomact中配置JNDI数据源
在localhost中新建一个XML文件。
<?xml version="1.0" encoding="UTF-8"?>
<!-- docBase是项目的源代码的路径也可以是部署包的路径 path和文件名一致,也就是项目的上下文-->
<Context path="/zjwtView" docBase="D:\eclipseWork\zjwtView\WebRoot" debug="0" reloadable="false" >
<Resource name="jndi/view"
auth="Container"
type="javax.sql.DataSource"
driverClassName="net.sourceforge.jtds.jdbc.Driver"
url="jdbc:jtds:sqlserver://192.168.200.112:1433/cms_zhj_eabox"
username="cms_zhj_eabox"
password="p"
maxActive="50"
maxIdle="10"
maxWait="10000"
removeabandoned="true"
removeabandonedtimeout="60"
logabandoned="false"/>
<ResourceLink global="UserDatabase" name="users" type="org.apache.catalina.UserDatabase"/>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="zjwtView-jndi." suffix=".log" timestamp="true"/>
</Context>
在项目中web.xml中配置一下代码
<resource-ref>
<res-ref-name>jndi/zjxfView</res-ref-name><!--jndi/zjxfView 就是localhost中文件的名称-->
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>