打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
TOMCAT性能调优

 

(2011-08-11 11:59:50)

1JVM虚拟机参数

服务器环境:WINDOWS2003JDK1.5.0_9及上、TOMCAT5.5及以上

1)设置tomcatjava虚拟机参数:\tomcat6\bin\catalina.bat

set JAVA_OPTS= -Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:MaxNewSize=512m -Dfile.encoding=GBK -Duser.language=zh

2)设置tomcat服务器参数server.xml,设置socket、线程、最大连接等参数

maxThreads="999" 目前性能测试时,此参数调到了999

maxSpareThreads="97"

minSpareThreads="50"

 

maxActive="500"

maxIdle="30"

maxWait="5000"

 

3)设置操作系统tcpip参数,regedit/修改windowstcpip参数(待测试)

 

2、不让tomcat列出某目录下的文件

修改Tomcat\conf\web.xml文件,把listings参数值设置成false即可,如下

<servlet>

……

        <init-param>

            <param-name>listings</param-name>

            <param-value>false</param-value>

        </init-param>

 ……

</servlet>

3java 获取时间少8小时

绩效报批和审批时间以及考勤请假等系统时间,都比服务器上现在的时间少8小时

原因:java 获取时间少8小时

解决办法:启动命令里增加参数针对tomcat,修改其catalina.bat 对应

set JAVA_OPTS= -Duser.timezone=Asia/Shanghai –Xms512m -Xmx1024m ……

新增 -Duser.timezone=Asia/Shanghai这句即可

4JVM中缺省字符集_解决中文乱码问题

解决tomcat下乱码的问题,刷新数据字典也出现乱码的问题

1Unixlinuxtomcat5/bin 下修改catalina.sh 下增加一个蓝行内容,内容插入到指定位置:

export JAVA_OPTS=" -Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:MaxNewSize=256m -Dfile.encoding=GBK -Duser.language=zh "

2windowstomcat5/bin 下修改catalina.bat 下增加一个蓝行内容,内容插入到指定位置:

Windows

set JAVA_OPTS= -Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:MaxNewSize=256m -Dfile.encoding=GBK -Duser.language=zh

5、解决中文文件无法正常下载问题

原因:文件名(字符串)编码不同,导致了资源无法找到

解决办法:到\tomcat\conf\server.xml文件,找到下面的配置段,添加红色部分

<Connector port="8889" protocol="org.apache.coyote.http11.Http11NioProtocol"

               connectionTimeout="20000"

               redirectPort="8443" maxHttpHeaderSize="8192"

               compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata"

               compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"

               URIEncoding="GBK"/>

6TOMCAT跟数据库的连接断开后,自动重连数据库设置

只需要在连接池server.xml文件中添加下面的参数,网络中断后,再连接上网络,tomcat不用重启就可以自动去连接数据库

<Resource name="jdbc/MSSQL" auth="Container" type="javax.sql.DataSource" maxActive="100"
  maxIdle="30" maxWait="10000" username="yksoft" password="yksoft1919"
  driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
  url="jdbc:sqlserver://192.192.100.89:1433;databaseName=ykchr;autoReconnect=true;"/>

7TOMCAT6安装版性能参数调优,添加红色框中内容

8TOMCAT6增加nio方式,优化了并发时访问的速度,设置如下

9TOMCAT6 后台报错:警告: Parameters: Invalid chunk ignored.

解决办法\Tomcat 6.0\conf\logging.properties文件的末行增加一行

org.apache.tomcat.util.http.level = SEVERE

10Tomcat设置Gzip,减少网络流量

启用对ext,js文件压缩功能,提高访问效率;其实没有真正的减肥,只不过用gzip帮助传输压缩而已,但是效果非常好

打开tomcat/confserver.xml文件,在对应端口的Connector元素里加上 :

<Connector port="8888" protocol="org.apache.coyote.http11.Http11NioProtocol"

               connectionTimeout="20000"

               redirectPort="8443" URIEncoding="GBK"

               compression="on"

               compressionMinSize="2048"

               noCompressionUserAgents="gozilla, traviata"

               compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"

               />

说明:

1)   compression="on" 表示启动压缩功能

2)   compressionMinSize="2048" 表示启用压缩的输出内容大小,这里面默认为2KB(即输出内容大于2KB才压缩)

3)    noCompressionUserAgents="gozilla,traviata"表示对那些用户(浏览器),不启用压缩功能;

4)    compressableMimeType="text/html,text/xml" 表示设定压缩格式

此设置已经在tomcat6上测试过,速度提高了很多!

11server.xml详解(学习用)

removeAbandoned=" true"            回收被遗弃的(一般是忘了释放的)数据库连接到连接池中

logAbandoned=" false"                       将被遗弃的数据库连接的回收记入日志

removeAbandonedTimeout=" 60"        数据库连接过多长时间不用将被视为被遗弃而收回连接池中

maxWait="10000"                              最大建立连接等待时间。如果超过此时间将接到异常。

                                                        设为-1表示无限制。

 

maxActive   :   连接池的最大数据库连接数。

        设为0表示无限制

目前性能测试环境,此参数已调到了1000

maxIdle   :   数据库连接的最大空闲时间。
           
超过此空闲时间,数据库连接将被标记为不可用,然后被释放。
           
设为0表示无限制

reloadable : 当网页被更新时是否重新编译

docBase   :   虚拟目录的路径,绝对路径。
       
如果虚拟目录设置?TALINA_HOME%\webapps目录的某个子目录下,
       
则可直接写子目录名称(如tiannet)。

path         :       指定路径,也就是访问web的路径

 

TOMCAT启用https安全认证

1IP协议安全设置

编号: 安全要求-设备-通用-TOMCAT-配置-17-可选

要求内容

对于通过HTTP协议进行远程维护的设备,设备应支持使用HTTPS等加密协议。

操作指南

1、参考配置操作

(1)使用JDK自带的keytool工具生成一个证书

JAVA_HOME/bin/ keytool  -genkey -alias tomcat -keyalg RSA -keystore d:/aaaaa

(2)修改tomcat/conf/server.xml配置文件,更改为使用https方式,增加如下行:

<Connector port="8443" maxHttpHeaderSize="8192"

               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

               enableLookups="false" disableUploadTimeout="true"

               acceptCount="100" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS" keystoreFile="d:\\aaaaa" keystorePass="1234567890" />

      

其中keystorePass的值为生成keystore时输入的密码

重新启动tomcat服务

 2、补充操作说明

 

检测方法

1、判定条件

使用https方式登陆tomcat服务器页面,登陆成功

2、检测操作

使用https方式登陆tomcat服务器管理页面

3、补充说明

Tomcat/bin目录下不能有tcnative-1.dll文件,否则不支持httpsSSL认证

 

2、操作步骤

对于通过HTTP协议进行远程维护的设备,设备应支持使用HTTPS等加密协议。

 

操作步骤:

第一步:生成证书

C:\Program Files\Java\jdk1.5.0_06\bin>keytool  -genkey -alias tomcat -keyalg  RS

A -keystore d:/aaa

keytool错误: java.lang.Exception: Keystore文件存在,但为空文件: d:/aaa

 

C:\Program Files\Java\jdk1.5.0_06\bin>keytool  -genkey -alias tomcat -keyalg  RS

A -keystore d:/aaa

输入keystore密码:  1234567890

您的名字与姓氏是什么?

  [Unknown]  lq

您的组织单位名称是什么?

  [Unknown]  hj

您的组织名称是什么?

  [Unknown]  hj

您所在的城市或区域名称是什么?

  [Unknown]  bj

您所在的州或省份名称是什么?

  [Unknown]  bj

该单位的两字母国家代码是什么

  [Unknown]  CN

CN=lq, OU=hj, O=hj, L=bj, ST=bj, C=CN 正确吗?

  []  Y

 

输入<tomcat>的主密码

        (如果和 keystore 密码相同,按回车):

第二步:修改server.xml,增加

<Connector port="8443" maxHttpHeaderSize="8192"

               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

               enableLookups="false" disableUploadTimeout="true"

               acceptCount="100" scheme="https" secure="true"

               clientAuth="false" sslProtocol="TLS" keystoreFile="d:\\aaaaa" keystorePass="1234567890" />

 

第三步:Tomcat/bin目录下,不能有tcnative-1.dll文件,否则不支持httpsSSL认证

第四步:登录界面,https://127.0.0.1:8443/templates/index/hrlogon.jsp

 

 

3tomcat强制HTTPS  

即将:http://www.hjsoft.com.cn 强制转换为:https://www.hjsoft.com.cn

解决办法:

 tomcat\conf\web.xml中的</welcome-file-list>后面加上这样一段: 

   <login-config>

      <!-- Authorization setting for SSL -->

      <auth-method>CLIENT-CERT</auth-method>

      <realm-name>Client Cert Users-only Area</realm-name>

  </login-config>

  <security-constraint>

      <!-- Authorization setting for SSL -->

      <web-resource-collection >

          <web-resource-name >SSL</web-resource-name>

          <url-pattern>/*</url-pattern>

      </web-resource-collection>

      <user-data-constraint>

          <transport-guarantee>CONFIDENTIAL</transport-guarantee>

      </user-data-constraint>

  </security-constraint>

4HTTPS无法下载/打开文件的解决方法

现象:

(1) IE6/7下,使用HTTPS下载/打开文件时,通过抓包发现文件已传输,但IE提示“Internet Explorer无法下载 *** (来自***)Internet Explorer无法打开该Internet站点。请求的站点不可用,或找不到。请以后再试。” ("Unable to download. Internet Explorer was unable to open this site. The requested site is either unavailable or cannot be found. Please try again later."),下载失败。

(2) 如果下载目标有一个hyperlink,当右键选择“目标另存为...”时,提示“Internet Explorer无法下载 *** (来自***)。无法将文件写入高速缓存”("The file could not be written to the cache"),下载失败。

 

原因:

参考Microsoft KB 815313 316431 812935 323308

 

解决方法:

(1) 参考上述MS KB,向client注册表增加下列DWORD条目BypassSSLNoCacheCheck,值设为1

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings,右侧添加:BypassSSLNoCacheCheckDWORD条目)值为1

注意:此设置,在2011-08-10以后的包,已经放到BSIE设置中,设置完后必须关掉全部IE,然后重新启动IE

(2) 如果不方便修改client端,检查服务器端相关程序(eg. httpd),看是否在HTTP response header中自动添加了“Pragma: no-cache”等内容。(参考MS KB316431的“更多信息”(More Information)部分)

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Java实现http与https切换
Tomcat 调优测试
中文java技术网::在tomcat中实现https安全连接的方法
Tomcat8.5 生成 https 协议
如何加大tomcat的内存及加大TOMCAT的连接数
tomcat生产部署关键参数设置
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服