下载地址
http://apr.apache.org/download.cgi
apache 跨平台底层接口库, 支持:
atomic/srclib/apr/atomic 原子操作
dso/srclib/apr/dso 动态加载共享库
fileio/srclib/apr/file_io 文件IO处理
mmap/srclib/apr/mmap 内存映射文件
locks/srclib/apr/locks 进程和线程互斥锁
memory/srclib/apr/memory 内存池操作
network_io/srclib/apr/network_io 网络IO处理
poll/srclib/apr/poll 轮询IO
table/srclib/apr/tables Apache数组(堆栈)和表格以及哈希表
process /srclib/apr/threadproc 进程和线程操作
user /srclib/apr/user 用户和用户组操作
time /srclib/apr/time 时间操作
string/srclib/apr/strings 字符串操作
password /srclib/apr/passwd 终端密码处理
misc /srclib/apr/misc 大杂烩,不属于其余类的任何apr类型都可以放在里面
shmem /srclib/apr/shmem 共享内存
random /srclib/apr/random 随机数生成库
可转换.dsw文件为.sln项目文件再编译或者直接利用makefile.win文件执行nmake命令
选nmake:
命令:
nmake -f makefile.win buildall checkall
nmake -f makefile.win buildall checkall USESLN=1
USESLN=1能让编译同时生成.sln项目文件
-
apr
2019-09-12 22:26:28下载地址http://apr.apache.org/download.cgiapache 跨平台底层接口库, 支持:atomic/srclib/apr/atomic 原子操作dso/srclib/apr/dso 动态加载共享库fileio/srclib/apr/file_io 文件IO处理mm...转载于:https://my.oschina.net/rechy/blog/189702
-
APR
2016-03-19 22:16:54不过,许多开发人员不知道的是,Tomcat Connector(Tomcat连接器)有bio、nio、apr三种运行模式,那么这三种运行模式有什么区别呢,我们又如何修改Tomcat Connector的运行模式来提高Tomcat的运行性能呢? 下面,...Tomcat是一个小型的轻量级应用服务器,也是JavaEE开发人员最常用的服务器之一。不过,许多开发人员不知道的是,Tomcat Connector(Tomcat连接器)有bio、nio、apr三种运行模式,那么这三种运行模式有什么区别呢,我们又如何修改Tomcat Connector的运行模式来提高Tomcat的运行性能呢?
下面,我们先大致了解Tomcat Connector的三种运行模式。
bio
bio(blocking I/O),顾名思义,即阻塞式I/O操作,表示Tomcat使用的是传统的Java I/O操作(即
java.io
包及其子包)。Tomcat在默认情况下,就是以bio模式运行的。遗憾的是,就一般而言,bio模式是三种运行模式中性能最低的一种。我们可以通过Tomcat Manager来查看服务器的当前状态。【点击这里可以查看Tomcat Manager用户配置的相关信息】nio
nio(new I/O),是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即
java.nio
包及其子包)。Java nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O
的缩写。它拥有比传统I/O操作(bio)更好的并发运行性能。要让Tomcat以nio模式来运行也比较简单,我们只需要在Tomcat安装目录/conf/server.xml
文件中将如下配置:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
中的protocol属性值改为
org.apache.coyote.http11.Http11NioProtocol
即可:<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="8443" />
此时,我们就可以在Tomcat Manager中看到当前服务器状态页面的HTTP协议的Connector运行模式已经从
http-bio-8080
变成了http-nio-8080
。apr
apr(Apache Portable Runtime/Apache可移植运行时),是Apache HTTP服务器的支持库。你可以简单地理解为,Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大地提高Tomcat对静态文件的处理性能。 Tomcat apr也是在Tomcat上运行高并发应用的首选模式。如果我们的Tomcat不是在apr模式下运行,在启动Tomcat的时候,我们可以在日志信息中看到类似如下信息:
2013-8-6 16:17:49 org.apache.catalina.core.AprLifecycleListener init 信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: xxx/xxx(这里是路径信息)
Tomcat apr运行模式的配置是三种运行模式之中相对比较麻烦的一种。据官方文档所述,Tomcat apr需要以下三个组件的支持:
- APR library[APR库]
- JNI wrappers for APR used by Tomcat (libtcnative)[简单地说,如果是在Windows操作系统上,就是一个名为tcnative-1.dll的动态链接库文件]
- OpenSSL libraries[OpenSSL库]
此外,与配置nio运行模式一样,也需要将对应的
Connector
节点的protocol
属性值改为org.apache.coyote.http11.Http11AprProtocol
。 不过,上述繁琐的操作都是Tomcat 7.0.30之前的版本才需要这样配置,从Tomcat 7.0.30版本开始,Tomcat已经自带了tcnative-1.dll
等文件,并且默认就是在Tomcat apr模式下运行,因此我们只需要下载最新版本的Tomcat直接使用即可。此外,即使不使用Tomcat Manager,我们也可以区分出Tomcat当前的运行模式。如果以不同的Connector模式启动,在Tomcat的启动日志信息中一般会包含类似如下的不同内容,我们只需要根据这些信息即可判断出当前Tomcat的运行模式:
- bio
- 信息: Starting ProtocolHandler ["http-bio-8080"] 2013-8-6 16:17:50 org.apache.coyote.AbstractProtocol start
- nio
- 信息: Starting ProtocolHandler ["http-nio-8080"] 2013-8-6 16:59:53 org.apache.coyote.AbstractProtocol start
- apr
- 信息: Starting ProtocolHandler ["http-apr-8080"] 2013-8-6 17:03:07 org.apache.coyote.AbstractProtocol start
-
apr1.5.1和apr-util1.5.2
2018-05-05 20:14:34apr1.5.2 apr-util1.5.2 亲测有效,apr1.5.2 apr-util1.5.2 亲测有效,apr1.5.2 apr-util1.5.2 亲测有效,apr1.5.2 apr-util1.5.2 亲测有效, -
linux和windows:apr,apr-iconv和apr-util安装包
2016-03-11 11:16:26linux和windows版本:apr,apr-iconv和apr-util安装包 -
apr和apr-util包
2018-04-26 09:21:44安装apache和php等的一些linux软件的依赖包,安装apr的使用需要注意,在make时可能会出现, rm: cannot remove `libtoolT': No such file or directory 这时你需要vi configure,编辑打开这个文件,查找 $RM "$cfgfile... -
apr-1.5.2,apr-util-1.5.4,apr-iconv-1.2.1,openssl-1.1.0e
2017-08-23 13:59:37apr-1.5.2,apr-util-1.5.4,apr-iconv-1.2.1,openssl-1.1.0e -
tomcat8开启apr需要相关的组件,包含jdk,apr,apr,util,tomcat8,openssl
2018-08-16 18:24:49tomcat8开启apr需要相关的组件,包含jdk,apr,apr,util,tomcat8,openssl-1.0.2o1.2里面的都在,想要Linux下的jdk都在里面 -
tomcat apr
2019-03-06 01:17:21在Linux下安装 1. 下载所需的包 到http://apr.apache.org/...apr-1.4.5.tar.gz apr-iconv-1.2.1.tar.gz apr-util-1.3.12.tar.gz tomcat-native-1.1.20-src.tar.gz(可以下载 也可以提取tomcat bi...在Linux下安装
1. 下载所需的包
到http://apr.apache.org/下载下面3个包(具体地址http://apache.fayea.com/apr/)
apr-1.4.5.tar.gz
apr-iconv-1.2.1.tar.gz
apr-util-1.3.12.tar.gz
tomcat-native-1.1.20-src.tar.gz(可以下载 也可以提取tomcat bin里面的)
2. 安装
a. 安装 apr
tar -zxvf apr-1.4.5.tar
cd apr-1.4.5
./configure --prefix=/usr/local/apr
make
make install
b. 安装 apr-iconv
tar -zxvf apr-iconv-1.2.1.tar.gz
cd apr-iconv-1.2.1
./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
make
make install
c. 安装 apr-util
tar zxvf apr-util-1.3.12.tar.gz
cd apr-util-1.3.12
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv
make
make install
如果按照报错,先安装expat库:yum install expat-devel
d. 安装 tomcat-native
tar zxvf tomcat-native-1.1.20-src.tar.gz
cd tomcat-native-1.1.20-src/jni/native
./configure --with-apr=/usr/local/apr --with-java-home=/apps/webserver/jdk1.6.0_31
make
make install
3. 添加环境变量(该步骤有可能可以省略,具体先启动tomcat看是否报错,若报错就操作该步骤)
vi /etc/profile #在文件末尾处添加下面的变量
# apr
export LD_LIBRARY_PATH=/usr/local/apr/lib
然后执行下面命令,使环境变量即时生效
source /etc/profile
或者vi /etc/profile
配置JDK中的
export APR_HOME=/usr/local/apr
完整如:
################################################
# JDK1.6.31's configure #
################################################
export JAVA_HOME=/apps/jdk1.6.0_31
export JAVA_BIN=/apps/jdk1.6.0_31/bin
export APR_HOME=/usr/local/apr
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:/usr/lib:/lib64:/lib:$CLASSPATH
export PATH=$JAVA_BIN:$PATH
export JAVA_OPTS="-Djava.library.path=$JAVA_HOME/lib -server -Xms1024m -Xmx2048m -XX:Ma
xPermSize=256m -Djava.awt.headless=true -Dsun
.net.client.defaultReadTimeout=60000 -Djmagick.systemclassloader=no -Dnetworkaddress.ca
che.ttl=300 -Dsun.net.inetaddr.ttl=300"
export JAVA_HOME JAVA_BIN PATH CLASSPATH JAVA_OPTS
然后执行下面命令,使环境变量即时生效
source /etc/profile
4.报错
a、报错:
SEVERE: Failed to initialize the SSLEngine.
org.apache.tomcat.jni.Error: 70023: This function has not been implemented on this platform
需要关闭tomcat的SSL侦听,除非你有使用SSL,修改tomcat的server.xml
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />
b、报错:
The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/local/lib
需要配置
start.sh
JAVA_OPTS="-Djava.library.path=/usr/local/lib
改为-Djava.library.path=/usr/local/apr/lib
c、告警:
WARNING: [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'maxSpareThreads' to '750' did not find a matching property.
Aug 16, 2017 3:38:08 PM org.apache.catalina.startup.SetAllPropertiesRule begin
WARNING: [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'minSpareTHreads' to '50' did not find a matching property.
通过网上搜索,具体解决方法如下:
server.xml中的配置HTTPS的那部分Connector代码
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="你的.keystore文件" />
将protocol参数由"HTTP/1.1"改成"org.apache.coyote.http11.Http11AprProtocol",重新启动Tomcat,搞定!
根据Tomcat官方的文档http://tomcat.apache.org/tomcat-6.0-doc/config/http.html,"HTTP/1.1"和"org.apache.coyote.http11.Http11Protocol"是一样的,但是不知道为什么前者会出错而后者就是对的,而且HTTP部分的Connector用的也是"HTTP/1.1"。
5. 验证
启动Tomcat :
TOMCAT_HOME/bin/start.sh
more TOMCAT_HOME/logs/catalina.out
看到类似这样的信息
Jul 20, 2011 15:27:32 PM org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.20.
就证明 apr 启动成功了。 -
卸载apr
2018-05-21 11:40:57在卸载之前,我查看一下它的版本 :[root@localhost src]# rpm -qa | grep aprapr-1.2.7-11apr-util-1.2.7-6apr-util-1.2.7-6apr-1.2.7-11xorg-x11-drv-dynapro-1.1.0-2晕,怎么两个软件包都装了两次,而版本相同 ...因其他软件包需要, 我要卸载 apr 和 apr-util 。 在卸载之前,我查看一下它的版本 :
[root@localhost src]# rpm -qa | grep apr
apr-1.2.7-11
apr-util-1.2.7-6
apr-util-1.2.7-6
apr-1.2.7-11
xorg-x11-drv-dynapro-1.1.0-2晕,怎么两个软件包都装了两次,而版本相同 。不管么多,反正就要卸载它们了,于是我执行如下命令:
[root@localhost src]# rpm -e apr-util-1.2.7-6
error: "apr-util-1.2.7-6" specifies multiple packages出现了错误,它说我指定了多个包。但它们的名字完全相同,我该如何指定它们的包名呢?
经过在网上查询,得知可以使用 --allmatches 卸载多个包。等我加上 --allmatches 后,系统又提示说有其他包需要使用 apr-util-1.2.7-6 , 于是我再加上参数 --nodeps 。整条命令如下:
rpm -e --allmatches --nodeps apr-util-1.2.7-6
命令执行成功,两个 apr-util-1.2.7-6 均被卸载.
-
apr相关
2015-01-13 10:26:14apr_status 作为apr函数返回值 APR -
编译 apr 1.6.5 需要的头文件 apr_escape_test_char.h
2019-01-09 20:13:54apr项目中缺失的apr_escape_test_char.h文件,把它放到apr\include,并在项目中添加这个头文件 -
linux编译找不到apr apr-util
2020-06-14 19:08:47linux编译找不到aprt apr-util Linux很多地方编译的时候都会用到apr 如果找不到apr就会报错 configure: WARNING: APR not found The Apache Portable Runtime (APR) library cannot be found. Please install APR on... -
apr的动态链接库
2018-09-07 17:36:41APR库需要用到三个:apr、apr-iconv、apr-util对应的动态链接库。 -
apr合集包(包含apr-1.5.2.tar.gz和apr-util-1.5.4.tar.gz)
2018-01-02 17:10:08nginx安装需要和apache集群,apache需要安装兼容包 apr合集包 -
apr-1.5.2和apr-util-1.5.4.tar.gz
2016-07-08 14:47:47apr-1.5.2和apr-util-1.5.4.tar.gz -
在windows上编译apr库apr-util库
2020-12-27 11:53:47在windows上编译apr库apr-util库 环境: win10、VS2015企业版、CMake3.18.2 一、下载apr相关库 1.1)expat:expat-2.1.0.tar.gz 1.2)apr库:apr-1.6.3.zip 1.3)apr-util库:apr-util-1.6.1-win32-... -
tomcatapr
2015-12-03 19:47:50tomcat apr模式直入主题,apr模式配置1.下载工具包,下载地址:http://download.csdn.net/detail/duxiaomeng1986_2008/9324017该工具包中包含两个压缩文件及一个安装说明。2.apr安装步骤如下: 解压apr-1.5.2 : tar ... -
centos 源码安装apache 之apr、apr-util
2019-09-24 04:50:50apr 和 apr-util官网下载地址: http://apr.apache.org/download.cgi 安装顺序是先安装apr然后再安装 apr-util,因为安装apr-util需要apr环境 首先安装apr 指定安装到/usr/local/apr wget ... -
The Configure.ac file does not find my apr and apr-util
2020-12-09 04:51:13<p>but it seems to me the Configure.ac file assumes the apr is in /usr/include/apr-1 and the apr-util likewise. Is this a standard location? <p>I retrieved and built apr and apr-util for MACOSX but ... -
linux安装apr
2020-02-27 17:31:51linux安装apr apr下载: http://apr.apache.org/download.cgi 安装 1. 解压apr-1.7.0,apr-iconv-1.2.2,apr-util-1.6.1 2. 进入相应目录配置configure 并安装 cd apr-1.7.0 ./configure --prefix=/usr/local/apr ... -
士研电机保护继电器APR-4/APR-4L说明书.pdf
2019-11-01 02:34:11士研电机保护继电器APR-4/APR-4L说明书pdf,士研电机保护继电器APR-4/APR-4L说明书:可确认三相电源之相序,防止马达逆转,按图面接线,在缺相时可防止电磁接触器动作,本保护继电器,采用电压输出方式与负载电流无关,... -
apr和apr-util编程例子
2016-04-30 11:16:33这里给出apr和apr-util编程的例子http://dev.ariel-networks.com/apr/apr-tutorial/sample/ -
交叉编译apr和apr-util库
2020-10-28 08:55:22apr库版本1.7.0 设置完交叉编译工具链的环境变量后,直接./configure --host=arm-phytec-linux-gnueabi -enable-shared --prefix=/home/xx/libapr-1 但是在make的时候会有几个报错,参考了这篇博客... -
apr-iconv
2019-09-12 22:26:31下载地址http://apr.apache.org/download.cgi检查相关模块目录名必须是/apr/apr-util/apr-iconv/apr-dist (自建)本模块跟随apr-util模块编译时来编译 ... -
Apache安装apr和apr-util作用
2018-02-27 15:24:05要测APR给tomcat带来的好处最好的方法是在慢速网络上(模拟Internet),将Tomcat线程数开到300以上的水平,然后模拟一大堆并发请求。如果不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待。但是配上APR... -
apr-1.5.2.tar.gz,apr-util-1.5.2.tar.gz
2017-06-04 11:23:47tomcat开启apr模式需要的apr-1.5.2.tar.gz,apr-util-1.5.2.tar.gz
-
基于Django的电子商务网站设计---第四章 模型和数据库
-
基于J2EE技术的高速公路物流管理系统
-
Linux极简入门视频课.运维.开发.就业
-
dokit:基于Spring Boot2,Jpa,Spring Security,JWT,redis,Vue的前分离分离的后台管理系统开发平台,用户管理,菜单管理,角色管理,字典管理,权限控制的方式为RBAC,操作日志,异常日志,接口限流,项目支持数据权限管理,支持一键生成前代码(支持在线预览及打包下载),支持前端菜单动态路由可一键部署服务器应用,数据库。系统中活跃用户状态监控,监视当前系统CPU,内存,磁盘,磁盘等相关信息,基于元素UI在线表单设计及生成Vue代码-源码
-
size-plugin-bot:一个用于大小插件的Github机器人-源码
-
智能手机在体育训练信息管理中的应用
-
UE4游戏逆向与安全+FPS游戏逆向与安全
-
php
-
乐优商城(六)
-
MySQL标示列
-
Matlab画图并高清输出到word
-
2021 租车小程序 毕业设计 毕设 源码 源代码
-
启动springboot项目jar包的linux脚本
-
rabbitmq-stomp服务端推送技术
-
QQ联系人模块思维导图
-
gearoenix:跨平台C ++ 3D游戏引擎-源码
-
软件测试基础
-
PythonExtensionPatterns:Python C扩展的安全编码实践示例-源码
-
基于自动化生产过程中PLC控制系统的设计
-
【Python 基础入门】