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 ...
随机推荐
- TC Asia Competition
250PT不说了.很水得一题. 500PT 给定n(<=1e18),求最大的因子,且这个因子为完全平方,假设这个因子为x那么满足x*x*y = n, 一直枚举因子到n^(1/3)就可以了. 最后 ...
- Android 用Intent和Bundle传递参数
传递方: //点击btn_sub传递 fieldHeight.getText()和 fieldWeight.getText() private void setListeners() { ...
- !!Python字典增删操作技巧简述+Python字典嵌套字典与排序
http://developer.51cto.com/art/201003/186006.htm Python编程语言是一款比较容易学习的计算机通用型语言.对于初学者来说,首先需要掌握的就是其中的一些 ...
- [Android] 修改设备访问权限
在硬件抽象层模块中,我们是调用open函数来打开对应的设备文件的.例如,在2.3.2小节中开发的硬件抽象层模块freg中,函数freg_device_open调用open函数来打开设备文件/dev/f ...
- 【HDOJ】1238 Substrings
深搜+剪枝,简单字符串. #include <stdio.h> #include <string.h> #define MAXLEN 105 #define MAXNUM 10 ...
- poj 1184 广搜进阶题
起初的想法果然就是一个6000000的状态的表示. 但是后面觉得还是太过于幼稚了. 可以看看网上的解释,其实就是先转换位置,然后再改变数字的大小. #include<iostream> # ...
- Xcode 升级后, 插件无法使用的问题( PluginLoading: Required plug-in compatibility UUID.... )
find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | x ...
- word 中Sentences、Paragraph等含义和用法
word 中有Words,Characters,Sentences.Paragraph,Sections 具体含义如下表达式 含义 返回的对象 Words(index) ...
- Error:Could not open initscript class cache for initialization script 'C:\Users\Avishek\AppData\Local\Temp\asLocalRepo14.gradle' (C:\Users\Avishek.gradle\caches\2.2.1\scripts\asLocalRepo14_dkwbdtenxxg
Error:Could not open initscript class cache for initialization script 见鬼 Android Studio打开项目时遇到这个问题 昨 ...
- XML新增、修改、选择
using System; using System.Linq; using System.Xml.Linq; using DFS.Kiosk.Provider.Simulator.Common.Ut ...