mac下tomcat啓用APR模式

前言

配置完SSL,我其實還是希望通過wireshark分析一下SSL握手協議,APR模式其實是想用來嘗試下能否實現握手協議的,畢竟加入了openssl。事實證明,並沒有相關干係,但畢竟折騰了挺久的,還是稍作記錄下=。=

BIO NIO APR模式的比較

BIO:採用Java IO技術,單線程處理單請求(Tomcat7以下默認)
NIO:採用Java NIO技術,少量線程處理大量請求(Tomcat8以上默認)
APR:採用Jni技術,從操作層面解決io阻塞問題,適合高併發場景
處理請求方面:BIO

配置環境

系統:OSX10.11.4 64位
Xcode版本: 7.3.1
tomcat版本:8.0.33
jdk版本:1.8.0_77

相關文件準備

1.APR library
2.OpenSSL libraries
3.Java SE Development Kit (JDK)
下載dmg的格式直接安裝即可
4.tomcat native

apr安裝

解壓apr包,注意留意README文檔,裏面有相關的信息
默認安裝目錄在 /usr/local/apr
安裝的時候注意使用管理員權限,sudo command ~

cd apr
./configure
make
make install

openssl安裝

解壓openssl包,注意INSTALL文檔
默認安裝目錄爲 /usr/local/ssl
安裝的時候,如果是64位的機子,配置文件需要使用

./Configure darwin64-x86_64-cc

自動配置則使用

./config

編譯安裝:

make
make install

tomcat-native安裝

解壓之後,在/tomcat-native/native/裏有BUIDING文檔

./configure --with-apr=/usr/local/apr
            --with-ssl=/usr/local/ssl
            --with-java-home=${JAVA_HOME}

JAVA_HOME需要給出jdk的安裝目錄

make
make install

生成成功後,會在/usr/local/apr/lib下有libtcnative-1.0.dylib的庫文件,這個就是tomcat啓動的依賴庫,需要把該文件軟鏈接到警告中提到的任一目錄內。

ln -s /usr/local/apr/lib/libtcnative-1.dylib /Library/Java/Extensions/

注意這裏並不是直接鏈接源文件,而是鏈接源文件的軟鏈接
ln命令的介紹

tomcat server.xml配置

1.開啓APR監聽

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

2.配置APR Connectors

<Connector port="443" maxHttpHeaderSize="8192"
             maxThreads="150"
             enableLookups="false" disableUploadTimeout="true"
             acceptCount="100" scheme="https" secure="true"
             SSLEnabled="true"
             SSLCertificateFile="${服務器簽名好的證書.crt}"
         SSLCertificateKeyFile="${服務器的密鑰.pem}" />

參考:http://tomcat.apache.org/tomcat-8.0-doc/apr.html

問題

1.UnsatisfiedLinkError

Exception in thread "main" java.lang.UnsatisfiedLinkError: /Users/wangtao/work/apache-tomcat/tcnative/trunk/native/.libs/libtcnative-1.0.dylib:dlopen(/Users/wangtao/work/apache-tomcat/tcnative/trunk/native/.libs/libtcnative-1.0.dylib,1): Symbol not found: _OCSP_RESPONSE_new

這個是因爲openssl未完全編譯引起的,主要是64bit系統沒有按照64bit編譯的方式執行,編譯前應該執行下面操作

./Configure darwin64-x86_64-cc

參考:https://qnalist.com/questions/6290333/tomcat-native-1-2-2

2.配置tomcat-native沒有頭文件

fatal error: stdio.h: No such file or directory

原因:安裝Xcode的時候沒有安裝命令行操作工具
解決方案:
xcode-select –install

參考:http://stackoverflow.com/questions/19580758/gcc-fatal-error-stdio-h-no-such-file-or-directory

3.配置tomcat-native找不到gcc或者cc的路徑

原因:查找的路徑不是默認的路徑
解決方案:

ln -s 你的gcc或者cc安裝目錄/usr 報錯信息的目錄

總結

配置環境其實還是蠻好玩的,好好看看官方文檔,然後自己摸索摸索把環境搭好,內心還是灰常欣慰的哈~
遇到問題的時候,嘗試通過日誌記錄的信息,然後一步一步排除問題。對於每個指令,理解並知道其本質原理,上手起來其實都是很easy~恩,多動動手,linux多折騰折騰的確會很有意思呢~

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