yum -y install apr apr-devel
拷贝Tomcat安装目录下的bin目录下的tomcat-native.tar.gz
[root@www ~]# ls /usr/local/apache-tomcat-8.5.40/bin/
bootstrap.jar daemon.sh startup.sh
catalina.bat digest.bat tomcat-juli.jar
catalina.sh digest.sh tomcat-native.tar.gz
catalina-tasks.xml setclasspath.bat tool-wrapper.bat
commons-daemon.jar setclasspath.sh tool-wrapper.sh
commons-daemon-native.tar.gz shutdown.bat version.bat
configtest.bat shutdown.sh version.sh
configtest.sh startup.bat
[root@www ~]# cp /usr/local/apache-tomcat-8.5.40/bin/tomcat-native.tar.gz ./
然后解压进行编译安装
tar xf tomcat-native.tar.gz
[root@www ~]# cd tomcat-native-1.2.21-src/native/
[root@www native]# ./configure --with-apr=/usr/bin/apr-1-config --with-java-home=/usr/local/java && make && make install
..........
[root@www native]# vim /usr/local/apache-tomcat-8.5.40/bin/catalina.sh
//修改Tomcat安装目录下的bin目录下的catalina.sh文件,添加: CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"
指定位置
vim /etc/profile
//修改/etc/profile重新声明变量,添加:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
vim /usr/local/apache-tomcat-8.5.40/conf/server.xml
//修改Tomcat的主配置文件server.xml,修改: protocol=" ",改为APR
<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="20000"
redirectPort="8443" />
然后重启服务 Tomcat的工作模式有三种
Java BIO :同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事会造成不必要的线程开销
Java NIO:同步非阻塞,服务器实现一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理
Java AIO(也叫APR(NIO 2)):异步非阻塞,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理