如何讓Tomcat使用APR連接器

安裝APR

APR簡介:

APR是Apache Portable Runtime的簡稱,它是一個高度可移植的庫。APR有許多用途,包括訪問高級I/O功能(如sendfile、epoll和openssl)、操作系統級功能(隨機數生成、系統狀態等)和本機進程處理(共享內存,NT管道和Unix套接字)等。

基於APR實現的連接器由於可以操作系統級別的功能,所以性能上相對與其他連接器來說要高。讓Tomcat使用APR連接器也是常用的調優手段之一,本文將手把手教大家如何在Linux下讓Tomcat使用APR連接器。

官網地址:

http://apr.apache.org/

下載地址:

http://apr.apache.org/download.cgi

進入下載頁面,複製源碼包的下載鏈接:
如何讓Tomcat使用APR連接器

到Linux上使用wget命令進行下載:

[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。所以我們得將APR依賴的模塊給安裝上。還是之前的下載頁面,複製APR-util源碼包的下載鏈接:
如何讓Tomcat使用APR連接器

到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依賴模塊 - APR-iconv

然後是APR-iconv模塊,同樣是之前的下載頁面,複製APR-iconv源碼包的下載鏈接:
如何讓Tomcat使用APR連接器

到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

APR連接器是基於OpenSSL這個庫來提供對https的支持(性能高),所以需要接下來需要安裝這個庫。OpenSSL的官網下載地址如下:

https://www.openssl.org/source/

到下載頁面中複製下載鏈接:
如何讓Tomcat使用APR連接器

到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

安裝Tomcat

官網下載地址:

https://tomcat.apache.org/download-90.cgi

複製下載鏈接:
如何讓Tomcat使用APR連接器

到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-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的官方文檔地址如下:

http://tomcat.apache.org/native-doc/


配置Tomcat使用APR連接器

編輯Tomcat的server.xml文件,將Connectorprotocol屬性值修改爲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連接器成功:
如何讓Tomcat使用APR連接器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章