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:cdcimages"></Context>、
重启Tomact后,在浏览器中输入:http://127.0.0.1:8080/images/liuyuehu.jpg访问成功!虚拟图片路径配置成功!
4、配置Tomact中项目路径
Tomact集群时,不会采取每个Tomact都加载一份独立的代码,而使用共享同一份代码。使用tomcat配置项目路径来共享同一份代码。便于实施人员更新代码。
比如:都加载D:javaproject的代码。项目的上下文为 project(项目的上下文要和Tomact的localhost文件夹下面的文件XXX.xml名称一致)
在Tomact的localhost文件夹下面project.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/Admin" docBase="D:javaproject" 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" />
<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"/>
<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"/>
<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:eclipseWorkzjwtViewWebRoot" 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>
<?xml version="1.0" encoding="UTF-8"?> <!-- docBase是项目的源代码的路径也可以是部署包的路径 path和文件名一致,也就是项目的上下文--> <Context path="/zjwtView" docBase="D:eclipseWorkzjwtViewWebRoot" 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>
<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>