INFO: The Apache Tomcat Native library which allows optional performance in production environments was not found on the java.library.path
APR的windows文件可在http://tomcat.heanet.ie/native/处获取, 下载并保存tcnative-1.dll文件到<TOMCAT_HOME>/bin目录. 这个DLL包含了APR和OpenSSl的内容.还有就是openssl.exe
在linux下安装APR
1.安装APR
在http://apr.apache.org下载. 使用root用户安装APR至默认位置(/usr/local/apr)
$ tar zxvf apr-x.y.z.tar.gz $ cd apr-x.y.z $ ./buildconf $ ./configure $ make && make install
2. 安装APR的jni
在<TOMCAT_HOME>/bin目录下的tomcat-native.tar.gz文件, 指定安装了APR的位置,如果不需要OpenSSL支持,可以使用--without--ssl选项. 如果要的话, 可以从www.openssl.org上下载到.
$ cd /path/to/tomcat/bin $ tar zxvf tomcat-native.tar.gz $ cd tomcat-native-x.y.z-src/jni/native $ ./configure --with-apr=/usr/local/apr --wwith-ssl=openssl_install_location $ make install
3. 安装后,在LD_LIBRARY_PATH下添加APR目录
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
重启tomcat时, 可以看到一个
INFO: Loaded Apache Tomcat Native library1.1.9信息, 表明APR被检测和加载.
本地APR连接器不是完整的连接器. 它实际上利用了标准的基于java的连接器来完成其大部分操作. 不过,当启用本地代码APR连接器时, 为了性能--可扩展性--敏感的操作, java代码将转换到本地实现 . APR连接器通过3个主要的机制实现最优化性能和增强可扩展性.
- 使用sendfile() kernel mode call直接从缓存中发磅大型静态文件
- 为了大量连接,使用单一的本机代码来保存poller以实现连接保持激活状态
- 使用OpenSSL本地代码,它拥有为SSL处理(通过硬件)加速SSL实现的功能
以下两个条件启用APR连接器.
- 将protocol属性设置为org.apache.coyote.http11.Http11AprProtocol
- APR库在PATH环境变量(windows)或LD_LIBRARY_PATH(linux)中.
server.xml文件配置:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol" macThreads="150" connectionTimeout="20000" redirectPort="8443" 可配置的属性有: allowTrace emptySessionPath enableLookups maxPostSize maxSavePostSize protocol proxyName proxyPort redirectPort SSLEnabled scheme secure URIEncoding useBodyEncodingForURI useIPVHosts xpoweredBy firstReadTimeout poolTime pollerSize useSendfile 默认为true sendfileSize