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)
安装相关依赖包 :
[root@DaMoWang ~]# yum -y install gcc gcc-c++ libtool* autoconf automake expat-devel perl perl-devel
安装 apr :
- [root@DaMoWang ~]# cd /tmp/
- [root@DaMoWang tmp]# wget http://mirrors.shu.edu.cn/apache/apr/apr-1.6.3.tar.gz
- [root@DaMoWang tmp]# tar xf apr-1.6.3.tar.gz
- [root@DaMoWang tmp]# cd apr-1.6.3
- [root@DaMoWang apr-1.6.3]# ./configure --prefix=/usr/local/apr
- [root@DaMoWang apr-1.6.3]# make && make install
安装 apr-iconv :
- [root@DaMoWang tmp]# wget http://mirrors.shu.edu.cn/apache/apr/apr-iconv-1.2.2.tar.gz
- [root@DaMoWang tmp]# tar xf apr-iconv-1.2.2.tar.gz
- [root@DaMoWang tmp]# cd apr-iconv-1.2.2
- [root@DaMoWang apr-iconv-1.2.2]# ./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
- [root@DaMoWang apr-iconv-1.2.2]# make && make install
安装 apr-util :
- [root@DaMoWang tmp]# wget http://mirrors.shu.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
- [root@DaMoWang tmp]# tar xf apr-util-1.6.1.tar.gz
- [root@DaMoWang tmp]# cd apr-util-1.6.1
- [root@DaMoWang 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
- [root@DaMoWang apr-util-1.6.1]# make && make install
安装 openssl :
- [root@DaMoWang tmp]# wget https://www.openssl.org/source/openssl-1.1.0h.tar.gz
- [root@DaMoWang tmp]# tar xf openssl-1.1.0h.tar.gz
- [root@DaMoWang tmp]# cd openssl-1.1.0h
- [root@DaMoWang openssl-1.1.0h]# ./config --prefix=/usr/local/openssl
- [root@DaMoWang openssl-1.1.0h]# make -j 4 && make install
安装 tomcat-native :
- [root@DaMoWang openssl-1.1.0h]# cd /usr/local/tomcat/bin/
- [root@DaMoWang bin]# tar xf tomcat-native.tar.gz
- [root@DaMoWang bin]# cd tomcat-native-1.2.17-src/native/
- [root@DaMoWang native]# ./configure --with-java-home=/usr/local/jdk10/ --with-ssl=/usr/local/openssl
- [root@DaMoWang native]# make && make install
添加环境变量 :
- [root@DaMoWang native]# vim /etc/profile.d/jdk.sh
- export LD_LIBRARY_PATH=/usr/local/apr/lib:$LD_LIBRARY_PATH
- [root@DaMoWang native]# source /etc/profile.d/jdk.sh
- # 也可在 catalina.sh 中修改
- JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m" -Djava.library.path=/usr/local/apr/lib
配置 server.xml
- [root@DaMoWang native]# cd /usr/local/tomcat/conf/
- [root@DaMoWang conf]# vim 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" />
查看日志验证
[root@DaMoWang conf]# tail ../logs/catalina.2018-08-18.log
18-Aug-2018 17:40:36.961 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-apr-8080"]
18-Aug-2018 17:40:36.997 信息 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-apr-8009"]
18-Aug-2018 17:40:37.000 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 4032 ms
["http-apr-8080"] ["http-apr-8009"]可以看到已经以 apr 协议模式启动成功
来源: http://www.bubuko.com/infodetail-2732821.html