本文基于Tomcat8.0.48+CentOS7.4进行配置
Tomcat APR Doc: http://tomcat.apache.org/tomcat-8.0-doc/apr.html
Apache Portable Runtime: https://apr.apache.org/
Tomcat的运行模式分为三种BIO、NIO、APR。
- BIO(Blocking IO)即阻塞式IO,Tomcat6及以前版本默认运行模式,性能非常低下,没有经过任何优化处理
- NIO(Non-Blocking IO)即非阻塞式IO,Tomcat7以后的版本默认运行模式,利用java异步IO技术使Tomcat运行性能有所提升
- APR(Apache Portable Runtime)即从操作系统级别解决异步IO问题,大幅度提高服务器的并发处理性能,也是Tomcat生产环境运行的首选。Tomcat可以使用APR提供更好的可伸缩性和更高的性能,更好的与底层服务做集成。
1. 安装依赖库
开启APR模式支持,需要如下条件:
- APR 1.2+
- OpenSSL 0.9.7+
- JNI(JDK1.4+)
- gcc & make
# 安装APR依赖
yum install apr-devel
# 安装OpenSSL依赖
yum install openssl-devel
# 系统若未安装gcc和make,需要进行安装
yum install gcc
yum install make
2. 编译安装tomcat-native
tomcat-native.tar.gz包位于tomcat的bin/目录中(若未安装tomcat,请自行前往tomcat官网下载)
# 解压tomcat-native.tar.gz
tar -zxvf tomcat-native.tar.gz
cd tomcat-native-1.2.16-src/native
./configure
make && make install
3. 修改tomcat的server.xml
将connector的protocol的值从HTTP/1.1修改为org.apache.coyote.http11.Http11AprProtocol
# 修改前
<Connector port="8180" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8543" />
# 修改后
<Connector port="8180" protocol="org.apache.coyote.http11.Http11AprProtocol" connectionTimeout="20000" redirectPort="8543" />
4. 设置环境变量并重启服务
cd $TOMCAT_HOME/bin/
vim catalina.sh
~
JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"