1. 程式人生 > >Tomcat8開啟APR模式步驟

Tomcat8開啟APR模式步驟

Tomcat ARP介紹

Tomcat可以使用APR來提供超強的可伸縮性和效能,更好地整合本地伺服器技術。APR(Apache Portable Runtime)

是一個高可移植庫,它是Apache HTTP Server2.x的核心。

 APR有很多用途,包括訪問高階IO功能(例如sendfile,epoll和OpenSSL),OS級別功能(隨機數生成,系統狀態等等),

本地程序管理(共享記憶體,NT管道和UNIXsockets)。這些功能可以使Tomcat作為一個通常的前臺WEB伺服器,能更好

地和其它本地web技術整合,總體上讓Java更有效率作為一個高效能web伺服器平臺而不是簡單作為後臺容器。

在產品環境中,特別是直接使用Tomcat做WEB伺服器的時候,應該使用Tomcat Native來提高其效能。 說白了,就是如何 在Tomcat中使用JNI的方式來讀取檔案以及進行網路傳輸。這個東西可以大大提升Tomcat對靜態文
件的處理效能,同時如果你使用了HTTPS方式 傳輸的話,也可以提升SSL的處理效能。

     第一步,下載APR元件依賴:

       參考官網 http://tomcat.apache.org/tomcat-8.0-doc/apr.html#APR_Components

       首先需要安裝APR的三個依賴 http://apr.apache.org/download.cgi


第二步,編譯APR元件和Tomcat-native元件
  1. 1編譯前需要安裝gcc和cmake,建議使用root使用者,防止各種許可權問題
 yum install cmake    gcc   expat-devel
  1. 2安裝apr
cd /home/hadoop/soft/tomcat8/apr/apr-1.6.3
./configure --prefix=/usr/local/apr  
make  
make install 

  1. 3.安裝apr-iconv
cd /home/hadoop/soft/tomcat8/apr/apr-iconv-1.2.2  
./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
make  
make install 

  1. 4.安裝apr-util
cd /home/hadoop/soft/tomcat8/apr/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 
make  
make install 

  1. 5.安裝Tomcat-native   
cd /home/hadoop/soft/tomcat8/tomcat8.5/bin/tomcat-native-1.2.16-src/native   
 ./configure --with-apr=/usr/local/apr --with-java-home=/home/hadoop/jdk8_x64/jdk1.8.0_151/
make  
make install 


  1. 6.修改環境變數

     在檔案末尾處新增下面的變數

vim /etc/profile
# apr
 export LD_LIBRARY_PATH=/usr/local/apr/lib

1.修改Tomcat 下 conf/server.xml protocol的值  HTTP/1.1為org.apache.coyote.http11.Http11AprProtocol
 <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
               connectionTimeout="20000"
               redirectPort="8443" />


2.修改SSLEngine 為off

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />

最後開始啟動Tomcat如下圖,成功。


常見錯誤FAQ: 錯誤提示 :architecture word width mismatch
解決方式: java版本問題,可能是32位java執行64位的lib.so,更換java版本即可


錯誤提示:安裝apr-util時也遇到類似的問題,找不到expat.h
解決方式:yum install expat-devel

錯誤提示:.lifecycleEvent Failed to initialize the SSLEngine
解決方式:<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />  預設為on  改為off 即可