共计 4415 个字符,预计需要花费 12 分钟才能阅读完成。
Tomcat 可以使用 Apache Portable Runtime 来提供卓越的性能及可扩展性,更好地与本地服务器技术的集成。Apache Portable Runtime 是一个高度可移植的库,位于 Apache HTTP Server 2.x 的核心。APR 有许多用途,包括访问高级 IO 功能(如 sendfile,epoll 和 OpenSSL),操作系统级功能(随机数生成,系统状态等)以及本地进程处理(共享内存,NT 管道和 Unix 套接字)。
这些功能不仅仅是一个后端集中的技术,还可以让 Tomcat 成为通用的网络服务器,可以实现与本地的其他 Web 技术更好的集成,并使 Java 成为一个完整的网络服务器平台。
官方要求:
APR 1.2+ development headers (libapr1-dev package)
OpenSSL 1.0.2+ development headers (libssl-dev package)
JNI headers from Java compatible JDK 1.4+
GNU development environment (gcc, make)
生产环境:
CentOS Linux release 7.3.1611 (Core) x86 64
Server version: Apache Tomcat/8.5.16
java version“1.8.0_131”
Apache Tomcat/8.5.16 的安装请查看《Linux Apache Tomcat 8.5 安装与配置》
1. 安装相关依赖包
# yum -y install gcc gcc-c++ libtool* autoconf automake expat-devel perl perl-devel
2. 下载安装包
# cd /tmp/ # wget http://mirror.bit.edu.cn/apache/apr/apr-1.6.2.tar.gz # wget http://mirror.bit.edu.cn/apache/apr/apr-iconv-1.2.1.tar.gz # wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.6.0.tar.gz # wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz
3. 安装 APR
# tar zxvf apr-1.6.2.tar.gz # cd apr-1.6.2 # vim configure
默认值:
RM='$RM'
修改为:
RM='$RM -f'
# ./configure --prefix=/usr/local/apr # make && make install
4. 安装 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
5. 安装 apr-util
# tar zxvf apr-util-1.6.0.tar.gz # cd apr-util-1.6.0 # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv # make && make install
6. 安装 OpenSSL
# tar zxvf openssl-1.1.0f.tar.gz # cd openssl-1.1.0f # ./config --prefix=/usr/local/openssl # make -j 4 && make install
7. 安装 tomcat-native
# cd /usr/local/tomcat/bin/ # tar zxvf tomcat-native.tar.gz # cd tomcat-native-1.2.12-src/native # ./configure --with-ssl=/usr/local/openssl --with-apr=/usr/bin/apr-1-config --with-java-home=/usr/java/jdk1.8.0_131 # make && make install
注意: 如果以上 configure 失败,可以执行 make distclean 清除
8. 添加变量内容
# vim /etc/profile.d/jdk.sh export LD_LIBRARY_PATH=/usr/local/apr/lib:$LD_LIBRARY_PATH # source /etc/profile.d/jdk.sh
至此 APR 安装成功。
9. 接下来需要修改 tomcat 配置文件中的 APR 运行模式,并测试是否安装成功。
# vim /usr/local/tomcat/conf/server.xml
默认值:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
修改为:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol" connectionTimeout="20000" redirectPort="8443" />
默认值:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
修改为:
<Connector port="8009" protocol="org.apache.coyote.ajp.AjpAprProtocol" redirectPort="8443" />
10. 现在重启 tomcat 服务, 并查看启动日志
# systemctl restart tomcat
# cat /usr/local/tomcat/logs/catalina.out
... INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib] INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"] INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"] INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read ...
注意:可以看到红色部分,提示找不到基于 APR 的 Apache Tomcat Native 库,因此无法使用 APR 模式启动。
解决方案:
# cp -R /usr/local/apr/lib/* /usr/lib64 # cp -R /usr/local/apr/lib/* /usr/lib
再次重启 tomcat,并查看启动日志
# cat /usr/local/tomcat/logs/catalina.out
... INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-apr-8080"] INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-apr-8009"] ...
可以看到已经以 apr 协议模式启动成功,经基于 APR 的技术 web 压力测试,Tomcat 的性能飙升。
更多 Tomcat 相关教程见以下内容:
CentOS 6.6 下安装配置 Tomcat 环境 http://www.linuxidc.com/Linux/2015-08/122234.htm
RedHat Linux 5.5 安装 JDK+Tomcat 并部署 Java 项目 http://www.linuxidc.com/Linux/2015-02/113528.htm
Tomcat 权威指南(第二版)(中英高清 PDF 版 + 带书签) http://www.linuxidc.com/Linux/2015-02/113062.htm
Tomcat 安全配置与性能优化 http://www.linuxidc.com/Linux/2015-02/113060.htm
Linux 下使用 Xshell 查看 Tomcat 实时日志中文乱码解决方案 http://www.linuxidc.com/Linux/2015-01/112395.htm
CentOS 64-bit 下安装 JDK 和 Tomcat 并设置 Tomcat 开机启动操作步骤 http://www.linuxidc.com/Linux/2015-01/111485.htm
Ubuntu 16.04 下安装 Tomcat 8.5.9 http://www.linuxidc.com/Linux/2017-06/144809.htm
Ubuntu 16.04 安装 Tomcat 8 图解 http://www.linuxidc.com/Linux/2017-10/147773.htm
Tomcat 配置文件 server.xml 详解 http://www.linuxidc.com/Linux/2017-10/148003.htm
Tomcat 单机多实例部署 - 多项目部署 http://www.linuxidc.com/Linux/2017-10/147259.htm
Tomcat 的详细介绍:请点这里
Tomcat 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149295.htm