tomcat 配置开启 APR 模式

摘要:
一般来说,Java作为高性能web服务器平台比简单地作为后台容器更有效。特别是当Tomcat直接用作Web服务器时,如何使用Tomcat中的JNI来读取文件和执行网络传输。该工具可以大大提高Tomcat处理静态文件的性能。在编译APR组件和Tomcat本机组件1之前,需要安装gcc和cmake。

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] 说明成功tomcat 配置开启 APR 模式第1张

常见错误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 即可
———————————————— 

免责声明:文章转载自《tomcat 配置开启 APR 模式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形) .Python-类的继承下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ES入门 (4) 语法(2)DML(1)文档操作(1)创建文档/修改文档/删除文档/条件删除文档/修改字段

1 创建文档   索引已经创建好了,接下来我们来创建文档,并添加数据。这里的文档可以类比为关系型数据库中的表数据,添加的数据格式为 JSON 格式   在 Postman 中,向 ES 服务器发 POST 请求 :http://127.0.0.1:9200/shopping/_doc 请求体内容为: 此处发送请求的方式必须为 POST,不能是 PUT,否...

关于mui页面跳转(跳转及参数传递)

页面跳转比较简单的一种写法如下,extras中可以传递扩展参数(param), 传值: mui.openWindow({ url : 'mspck.jsp', id : 'mspck.jsp', extras : { openid : openid } }); 取值: varself= plus.webview.currentWebview(); var...

shell脚本实现多台服务器自动巡检

转至:https://www.cnblogs.com/xred/p/7766300.html shell脚本实现多台服务器自动巡检 摘要:         运维服务一个项目二十多台(或者多台)服务器,每天要做服务器的性能巡检工作是查看服务器的CPU、内存、磁盘空间是否在正常值范围内。像这样每天或者每个固定时间段都做相同的重复工作,为了简化重复的工作,我写了...

(七)计算机远程访问设置

   远程访问,可以实现计算机通过网线对另一台电脑进行远程访问,共享数据。设置方法如下。 一、关闭防火墙 若要使远程连接正常使用,需要关闭防火墙,方法如下。 1.点击“开始”→“控制面板”。 2.在弹出来的控制面板项中,右上角“查看方式”选择“大类别”,单击“windows 防火墙”。   3.选择“打开或关闭windows防火墙”。 在弹出来的对话框中...

HTTP详解--请求、响应、缓存

1. HTTP请求格式              做过Socket编程的人都知道,当我们设计一个通信协议时,“消息头/消息体”的分割方式是很常用的,消息头告诉对方这个消息是干什么的,消息体告诉对方怎么干。HTTP协议传输的消息也是这样规定的,每一个HTTP包都分为HTTP头和HTTP体两部分,消息体是可选的,而消息头是必须的。每当我们打开一个网页,在上面点...

C#打造秒杀腾讯的仿QQ界面,从此独孤求败

【jehnjehn原创文章,欢迎转载,但请保留原文链接】本文CSDN地址:http://blog.csdn.net/jehnjehn/article/details/7521529           首先,这标题夸张了些。但我可以向毛主席保证夸张不是目的,我只是有目的地夸张:为了证明C#(.NET平台)其实有多么的强大,为了证明C# WinForm仿QQ...