APR簡介:java
APR是Apache Portable Runtime的簡稱,它是一個高度可移植的庫。APR有許多用途,包括訪問高級I/O功能(如sendfile、epoll和openssl)、操做系統級功能(隨機數生成、系統狀態等)和本機進程處理(共享內存,NT管道和Unix套接字)等。apache
基於APR實現的鏈接器因爲能夠操做系統級別的功能,因此性能上相對與其餘鏈接器來講要高。讓Tomcat使用APR鏈接器也是經常使用的調優手段之一,本文將手把手教你們如何在Linux下讓Tomcat使用APR鏈接器。vim
官網地址:tomcat
下載地址:服務器
進入下載頁面,複製源碼包的下載連接:性能
到Linux上使用wget
命令進行下載:spa
[root@txy-server ~]# cd /usr/local/src [root@txy-server /usr/local/src]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7.0.tar.gz
安裝編譯所需依賴:操作系統
[root@txy-server ~]# yum install -y openssl-devel gcc expat-devel
解壓下載好的apr源碼包,參照以下命令完成編譯安裝:
# 解壓縮 [root@txy-server /usr/local/src]# tar -zxvf apr-1.7.0.tar.gz [root@txy-server /usr/local/src]# cd apr-1.7.0/ # 配置編譯參數,生成Makefile [root@txy-server /usr/local/src/apr-1.7.0]# ./configure --prefix=/usr/local/apr # 指定安裝路徑 # 進行編譯安裝 [root@txy-server /usr/local/src/apr-1.7.0]# make && make install
因爲APR須要依賴幾個模塊,其中一個就是APR-util。因此咱們得將APR依賴的模塊給安裝上。仍是以前的下載頁面,複製APR-util源碼包的下載連接:
到Linux上使用wget
命令進行下載:
[root@txy-server /usr/local/src/apr-1.7.0]# cd ../ [root@txy-server /usr/local/src]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
解壓下載好的APR-util源碼包,參照以下命令完成編譯安裝:
[root@txy-server /usr/local/src]# tar -zxvf apr-util-1.6.1.tar.gz [root@txy-server /usr/local/src]# cd apr-util-1.6.1/ [root@txy-server /usr/local/src/apr-util-1.6.1]# ./configure -prefix=/usr/local/apr-util --with-apr=/usr/local/apr # 指定apr的安裝路徑 [root@txy-server /usr/local/src/apr-util-1.6.1]# make && make install
而後是APR-iconv模塊,一樣是以前的下載頁面,複製APR-iconv源碼包的下載連接:
到Linux上使用wget
命令進行下載:
[root@txy-server /usr/local/src/apr-util-1.6.1]# cd ../ [root@txy-server /usr/local/src]# wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-iconv-1.2.2.tar.gz
解壓下載好的APR-iconv源碼包,參照以下命令完成編譯安裝:
[root@txy-server /usr/local/src]# tar -zxvf apr-iconv-1.2.2.tar.gz [root@txy-server /usr/local/src]# cd apr-iconv-1.2.2/ [root@txy-server /usr/local/src/apr-iconv-1.2.2]# ./configure -prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr [root@txy-server /usr/local/src/apr-iconv-1.2.2]# make && make install
APR鏈接器是基於OpenSSL這個庫來提供對https的支持(性能高),因此須要接下來須要安裝這個庫。OpenSSL的官網下載地址以下:
到下載頁面中複製下載連接:
到Linux上使用wget
命令進行下載:
[root@txy-server /usr/local/src/apr-util-1.6.1]# cd ../ [root@txy-server /usr/local/src]# wget https://www.openssl.org/source/openssl-1.0.2t.tar.gz
解壓下載好的OpenSSL源碼包,參照以下命令完成編譯安裝:
[root@txy-server /usr/local/src]# tar -zxvf openssl-1.0.2t.tar.gz [root@txy-server /usr/local/src]# cd openssl-1.0.2t/ [root@txy-server /usr/local/src/openssl-1.0.2t]# ./config --prefix=/usr/local/openssl
與編譯其餘庫不一樣的是須要修改上一步操做生成的Makefile
文件,增長一個編譯參數:
[root@txy-server /usr/local/src/openssl-1.0.2t]# vim Makefile # 在CFLAG屬性的末尾增長-fPIC參數 CFLAG= ... -fPIC
修改完成後,執行編譯安裝:
[root@txy-server /usr/local/src/openssl-1.0.2t]# make && make install
官網下載地址:
複製下載連接:
到Linux上使用wget
命令進行下載:
[root@txy-server ~]# cd /usr/local/src [root@txy-server /usr/local/src]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz
解壓下載好的壓縮包,並將其解壓後的目錄重命名:
[root@txy-server /usr/local/src]# tar -zxvf apache-tomcat-9.0.27.tar.gz -C /usr/local [root@txy-server /usr/local/src]# mv ../apache-tomcat-9.0.27/ ../tomcat9
最後是安裝tomcat-native組件,tomcat-native組件可讓Tomcat訪問APR鏈接器。Tomcat已經自帶了tomcat-native,無需額外下載。咱們只須要進行一個安裝便可,步驟以下:
# 解壓tomcat-native [root@txy-server ~]# tar -zxvf /usr/local/tomcat9/bin/tomcat-native.tar.gz -C /usr/local/src [root@txy-server ~]# cd /usr/local/src/tomcat-native-1.2.23-src/native/ # 配置編譯參數,指定APR和OpenSSL庫的安裝位置,生成Makefile [root@txy-server /usr/local/src/tomcat-native-1.2.23-src/native]# ./configure --with-apr=/usr/local/apr --with-ssl=/usr/local/openssl [root@txy-server /usr/local/src/tomcat-native-1.2.23-src/native]# make && make install # 編譯安裝
tomcat-native的官方文檔地址以下:
編輯Tomcat的server.xml
文件,將Connector
的protocol
屬性值修改成org.apache.coyote.http11.Http11AprProtocol
,即啓用APR鏈接器。以下示例:
[root@txy-server ~]# vim /usr/local/tomcat9/conf/server.xml <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol" connectionTimeout="20000" redirectPort="8443" />
而後在Tomcat的catalina.sh
腳本文件中指定apr的庫路徑。而且因爲開啓了APR鏈接器後,JVM用到的native內存會增大,所以還須要適當調大Metaspace空間:
[root@txy-server ~]# vim /usr/local/tomcat9/bin/catalina.sh # 增長一行JVM參數配置 JAVA_OPTS="$JAVA_OPTS -XX:MetaspaceSize=128m -Djava.library.path=/usr/local/apr/lib"
參數說明:
XX:MetaspaceSize=128m
:將Metaspace空間設置爲128M-Djava.library.path=/usr/local/apr/lib"
:指定apr的庫路徑配置完成後,使用以下命令啓動Tomcat服務器:
[root@txy-server ~]# /usr/local/tomcat9/bin/startup.sh
啓動Tomcat以後使用以下命令查看Tomcat的啓動日誌:
[root@txy-server ~]# tail -n10 /usr/local/tomcat9/logs/catalina.out
以下輸出了APR字樣的信息,表明啓用APR鏈接器成功: