tomcat 配置开启 APR 模式

浪尽此生 提交于 2020-02-08 01:48:28

Tomcat ARP介绍
 

Tomcat可以使用APR来提供超强的可伸缩性和性能,更好地集成本地服务器技术。APR(Apache Portable Runtime)

是一个高可移植库,它是Apache HTTP Server2.x的核心。

  APR有很多用途,包括访问高级IO功能(例如sendfile,epoll和OpenSSL),OS级别功能(随机数生成,系统状态等等),

本地进程管理(共享内存,NT管道和UNIXsockets)。这些功能可以使Tomcat作为一个通常的前台WEB服务器,能更好

地和其它本地web技术集成,总体上让Java更有效率作为一个高性能web服务器平台而不是简单作为后台容器。

 

在产品环境中,特别是直接使用Tomcat做WEB服务器的时候,应该使用Tomcat Native来提高其性能。
说白了,就是如何 在Tomcat中使用JNI的方式来读取文件以及进行网络传输。这个东西可以大大提升Tomcat对静态文
件的处理性能,同时如果你使用了HTTPS方式 传输的话,也可以提升SSL的处理性能。

     第一步,下载APR组件依赖:
       参考官网 http://tomcat.apache.org/tomcat-8.0-doc/apr.html#APR_Components

       首先需要安装APR的三个依赖 http://apr.apache.org/download.cgi

 

 

第二步,编译APR组件和Tomcat-native组件
1编译前需要安装gcc和cmake,建议使用root用户,防止各种权限问题
yum install cmake gcc expat-devel
2安装apr
cd /home/hadoop/soft/tomcat8/apr/apr-1.6.3
./configure --prefix=/usr/local/apr
make
make install

3.安装apr-iconv
cd /home/hadoop/soft/tomcat8/apr/apr-iconv-1.2.2
./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
make
make install

4.安装apr-util
cd /home/hadoop/soft/tomcat8/apr/apr-util-1.6.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv
make
make install

5.安装Tomcat-native   
cd /home/hadoop/soft/tomcat8/tomcat8.5/bin/tomcat-native-1.2.16-src/native
./configure --with-apr=/usr/local/apr --with-java-home=/home/hadoop/jdk8_x64/jdk1.8.0_151/
make
make install


6.修改环境变量
     在文件末尾处添加下面的变量

vim /etc/profile
# apr
export LD_LIBRARY_PATH=/usr/local/apr/lib

1.修改Tomcat 下 conf/server.xml protocol的值  HTTP/1.1为org.apache.coyote.http11.Http11AprProtocol
<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="20000"
redirectPort="8443" />


2.修改SSLEngine 为off

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />


最后开始启动Tomcat如下图,成功。

 如果有显示[http-apr-8080] 说明成功

 

 

常见错误FAQ:


错误提示 :architecture word width mismatch
解决方式: java版本问题,可能是32位java运行64位的lib.so,更换java版本即可


错误提示:安装apr-util时也遇到类似的问题,找不到expat.h
解决方式:yum install expat-devel

错误提示:.lifecycleEvent Failed to initialize the SSLEngine
解决方式:<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />  默认为on  改为off 即可
———————————————— 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!