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 ...
随机推荐
- Ubuntu下APACHE HTTPS安装和配置
http://blog.csdn.net/newjueqi/article/details/9789659
- S3C2410 实验三——跑马灯实验
http://www.evernote.com/shard/s307/sh/f2a748e7-34c4-4ce6-acac-82a756cc9e82/ad5813188d655e504857970db ...
- HTML <!--...--> 注释标签
HTML <!--...--> 注释标签 实例 HTML 注释: <!--这是一个注释,注释在浏览器中不会显示--> <p>这是一个段落</p> 浏 ...
- Android的string-array数据源简单使用
在Android中,用string-array是一种简单的提取XML资源文件数据的方法. 例子如下: 把相应的数据放到values文件夹的arrays.xml文件里 <?xml version= ...
- XML常用颜色值
<?xml version="1.0" encoding="utf-8" ?> <resources> <color name=& ...
- c++11 lambda递归调用写法
偶然想到要在函数内部使用lambda递归调用,以下是可行的写法,可参考 std::function<void(Node * container,const BlendFunc &blen ...
- bzoj 1875 [SDOI2009]HH去散步(矩乘)
Description HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走回. 又因 ...
- Clean Code – Chapter 4: Comments
“Don’t comment bad code—rewrite it.”——Brian W.Kernighan and P.J.Plaugher The proper use of comments ...
- 利用JDBC连接Eclipse和mySQL5.1.26数据库
初学JDBC,看了看书,自己动手的时候还是有很多地方有问题,最终终于解决了实现了数据库的连接.现将整个步骤描述如下: 环境:mySQL5.1.26(win 32bit), Eclipse JavaEE ...
- Esper系列(十)NamedWindow语法delete、Select+Delete、Update
On-Delete With Named Windows 功能:在Named Windows中删除事件. 格式: 1 , 4 field_b = win.field_a, 5 field_ ...