Tomcat 优化
1.apr
许多朋友可能在启动tomcat的时候都会看到类似这样的信息:
信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Java\jre\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS
出现这种情况是这表示没有找到APR
简要解决办法:去 http://tomcat.heanet.ie/native/ 下载编译好的tcnative-1.dll文件,目前最新为1.1.14,拷贝至jdk\bin下,再启动就可以成功加载APR了。
信息: Loaded Apache Tomcat Native library 1.1.14.
org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [false], sendfile [true], accept filters [false], random [true].
2.URIEncoding
有时候在做开发的时候经常发现文本框输入的中文到了程序中成了乱码,其实是因为在端口监听部分缺少编码。
- URIEncoding="UTF-8"
解决方法如下:
原始部分
8080端口上
- <Connector port="8080" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443" />
修改后
- <Connector port="8080" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443" URIEncoding="UTF-8" />
8009端口 ajp跳转服务上,关于这个端口在apache http 做跳转时,要相当注意
- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
修改后
- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />
这样,服务器得到的中文字符就不会再有乱码了。
3.设置Tomcat管理员帐号
修改tomcat-users.xml文件,在</tomcat-users>的标签前添加一行
- <user username="tomcat" password="tomcat" roles="admin,manager"/>
让tomcat用户拥有管理员权限。
4.设置SSL
首先,我们要创建密钥:
- keytool -genkey -alias tomcat -keyalg RSA
此时,用户主目录下会生成一个.keystore文件。
然后,我们配置server.xml文件,找到SSLEnabled="true"所在的标签,将其解除注释,同时填补两个属性:
1.keystoreFile="C:/Users/Zlex/.keystore"
2.keystorePass="123456"
keystoreFile 指的是你的密钥文件存储的路径,keystorePass指的是你的密码。
举例如下:
- <!--
- Define a SSL HTTP/1.1 Connector on port 8443 This connector uses the
- JSSE configuration, when using APR, the connector should be using the
- OpenSSL style configuration described in the APR documentation
- -->
- <!-- -->
- <Connector
- SSLEnabled="true"
- clientAuth="false"
- keystoreFile="C:/Users/Zlex/.keystore"
- keystorePass="123456"
- maxThreads="150"
- port="8443"
- protocol="HTTP/1.1"
- scheme="https"
- secure="true"
- sslProtocol="TLS" />
最后,重启tomcat,在地址栏中访问 https://localhost:8443/。
将上述port="8443"配置改为port="443",可以通过https://localhost/直接访问。
需要双向认证?参考如下内容:
- <Connector port="443"
- URIEncoding="UTF-8"
- useBodyEncodingForURI="true"
- maxHttpHeaderSize="33192"
- maxThreads="150"
- minSpareThreads="25"
- maxSpareThreads="75"
- enableLookups="false"
- disableUploadTimeout="true"
- acceptCount="100"
- scheme="https"
- secure="true"
- SSLEnabled="true"
- clientAuth="true"
- keystoreFile="conf/server.keystore"
- keystorePass="123456"
- truststoreFile="conf/ca.p12"
- truststorePass="123456"
- truststoreType="PKCS12"
- sslProtocol="TLS" />
其中,
- clientAuth="true"
- keystoreFile="conf/server.keystore"
- keystorePass="123456"
- truststoreFile="conf/ca.p12"
- truststorePass="123456"
- truststoreType="PKCS12"
clientAuth="true"开启双向认证
keystoreFile="conf/server.keystore" 指向服务器密钥库
keystorePass="123456" 服务器密钥库密码
truststoreFile="conf/ca.p12"指向CA信任库
truststorePass="123456"CA信任库密码
truststoreType="PKCS12"CA信任库格式,除了PKCS#12还有JKS,JKS为java原生默认支持的密钥库格式!
更多ssl配置访问http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html。
5.通过GZIP压缩加速服务器响应速度
只需要配置:
- <Connector
- port="8080"
- protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="443"
- URIEncoding="UTF-8"
- compression="on"
- noCompressionUserAgents="gozilla, traviata"
- compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json"
- />
说说配置细节:
compression="on" 开启压缩支持
noCompressionUserAgents="gozilla, traviata" 不压缩的内容
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json" 压缩的类型
之后进行的访问均可获得GZIP压缩支持![]()
6.设置静态页面编码
修改web.xml
加入如下内容,是*.hml、*.html静态页面默认字符集编码为UTF-8
- <mime-mapping>
- <extension>htm</extension>
- <mime-type>text/html;charset=utf-8</mime-type>
- </mime-mapping>
- <mime-mapping>
- <extension>html</extension>
- <mime-type>text/html;charset=utf-8</mime-type>
- </mime-mapping>
7.配置JVM
找到JAVA_OPTS进行配置:
- JAVA_OPTS="-Xms512m -Xmx512m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"
Tomcat 优化的更多相关文章
- tomcat优化
tomcat优化:vim catalina.sh添加:JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -X ...
- windows tomcat 优化
windows tomcat 优化 1. tomcat conf server.xml 在server.xml中修改以一部分,增加节点数目,可以很好的提高性能: <Connector port ...
- Tomcat 优化 java.lang.OutOfMemoryError: Java heap space 的解决方法
Tomcat 优化 java.lang.OutOfMemoryError: Java heap space 的解决方法 java.lang.OutOfMemoryError: Java heap sp ...
- tomcat优化-有改protocol 和 缓存 集群方案
tomcat优化 在线上环境中我们是采用了tomcat作为Web服务器,它的处理性能直接关系到用户体验,在平时的工作和学习中,归纳出以下七种调优经验. 1. 服务器资源 服务器所能提供CPU.内存.硬 ...
- tomcat 优化配置 java-8 tomcat-7
tomcat 优化配置 , 说明 一.并发优化 1.JVM调优 以下为1G物理内存tomcat配置: JAVA_OPTS="-server -Xms512M -Xmx512M -Xss256 ...
- Tomcat 优化方案 和 配置详解(转)
转自 Tomcat 优化方案 和 配置详解 http://201605130349.iteye.com/blog/2298985 Server.xml配置文件用于对整个容器进行相关的配置. <S ...
- Tomcat优化之容易集合经验
Tomcat优化1. 如何加大tomcat连接数在tomcat配置文件server.xml中的<Connector ... />配置中,和连接数相关的参数有: maxThreads : t ...
- tomcat优化实例
———————————————————————————————————— 一.运行模式优化 修改tomcat运行模式为nio<Connector port="80" prot ...
- tomcat优化之安装并配置apr库
在谈到tomcat优化时,必然要说到apr库,这个库是C语言实现的,tomcat通过JNI方式使用该库可以大大提高性能. tomcat在使用apr时需要安装apr,apr-util和tomcat-na ...
- tomcat优化和JVM修改内存
Tomcat中的线程池(APR和ThreadPool) 2. 在Connector中指定使用共享线程池: <Connector executor="tomcatThreadPool&q ...
随机推荐
- SQL SERVER查看当前连接情况
使用超级管理员账户登录,并执行以下命令: SELECT * FROM [Master].[dbo].[SYSPROCESSES] WHERE [DBID] IN ( SELECT [DBID] FRO ...
- 面向XX编程
[一篮饭特稀原创,转载请注明出自http://www.cnblogs.com/wanghafan/p/5033186.html ] 基于面向XX编程的个人理解 面向过程编程 Procedure Or ...
- 关于fastclick.js
Fastclick fastclick.js解决了什么问题? 自己接触WebApp开发的前期, 总感觉WebApp上的按键操作不如NativeApp的灵敏, 好像有那么一小点延迟. 后来才知道, 这是 ...
- [译]GotW #6a: Const-Correctness, Part 1
const 和 mutable在C++存在已经很多年了,对于如今的这两个关键字你了解多少? Problem JG Question 1. 什么是“共享变量”? Guru Question 2. con ...
- Hadoop2.2编程:新旧API的区别
Hadoop最新版本的MapReduce Release 0.20.0的API包括了一个全新的Mapreduce JAVA API,有时候也称为上下文对象. 新的API类型上不兼容以前的API,所以, ...
- windows下面虚拟主机
1. wondows xp + apmserv 5.2.6 端口8088 2.httpd.config文件 1. ServerRoot "D:/APMServ/APMServ5.2.6/A ...
- Xfire soapHeader的WebService权限控制forjava
研究webservice有一段时间了,觉得用soapHeader来控制访问比较简单,特贴出代码以供大家分享 1.我们可以做一个很简单的ws测试,服务端的接口代码如下: package ws; //Ge ...
- redis 用setbit(bitmap)统计活跃用户
getspool.com的重要统计数据是实时计算的.Redis的bitmap让我们可以实时的进行类似的统计,并且极其节省空间.在模拟1亿2千8百万用户的模拟环境下,在一台MacBookPro上,典型的 ...
- zzzz
using System; using System.Collections.Generic; using System.Diagnostics; using System.Management; u ...
- loadrunner SQL2008
1. 下载 JDBC 驱动(sqljdbc4.jar) 2. 在 run-time setting 下的 classpath 把 JDBC 驱动引入 /* * LoadRunner Java scri ...