1. 程式人生 > >CentOS6系統tomcat配置apr--踩坑之作

CentOS6系統tomcat配置apr--踩坑之作

mpat centos protocol 兼容 nio .org connector 出錯 dconf

tomcat中一共有三種運行模式,分別是:bio,nio,apr
bio是阻塞式IO操作,使用的是傳統的java i/o處理方式,對於每一個請求都要創建一個線程來進行處理,所以開銷較大不適合處理高並發的場景
nio是基於java中非阻塞IO操作的API實現,比傳統的i/o處理方式有更高的並發運行性能,也是tomcat8默認模式
apr是從操作系統級別解決異步IO問題,大幅度提高服務器的並發處理性能,也是Tomcat生產環境運行的首選方式
centos6安裝配置時眾多坑,一個一個填
yum install apr-devel gcc gcc-c++ openssl-devel openssl #首先安裝依賴包
在編譯安裝native時,會提示apr版本低,需要重新編譯安裝
安裝apr
cd /usr/local
wget http://www.apache.org/dist/apr/apr-1.6.5.tar.gz
tar xf apr-1.6.5.tar.gz -C /usr/local/src
cd /usr/local/src/apr-1.6.5
./configure --prefix=/usr/local/apr
make && make install

安裝apr-util
yum install expat-devel #安裝依賴包
wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.6.1.tar.gz

tar xf apr-util-1.6.1.tar.gz -C /usr/local/src/
cd /usr/local/src/apr-util-1.6.1
./configure --with-apr=/usr/local/apr
make && make install

安裝native
cd /usr/local
wget http://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.2.16/source/tomcat-native-1.2.16-src.tar.gz
tar xf tomcat-native-1.2.16-src.tar.gz -C /usr/local/src/

cd /usr/local/src/tomcat-native-1.2.16-src/native
./configure --with-apr=/usr/local/apr --with-java-home=/usr/local/jdk

如果提示openssl不兼容,(error: Your version of OpenSSL is not compatible with this version of tcnativ)需要重新安裝高版本的openssl

wget https://www.openssl.org/source/openssl-1.0.2-latest.tar.gz
tar xf openssl-1.0.2-latest.tar.gz
cd openssl-1.0.2q
./config --prefix=/usr/local/openssl -fPIC #註意這裏需要加入 -fPIC參數,否則後面在安裝tomcat native 組件會出錯
make && make install
mv /usr/bin/openssl ~
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
openssl version #查看安裝後的版本
OpenSSL 1.0.2q 20 Nov 2018
cd /usr/local/src/tomcat-native-1.2.16-src/native #進入native目錄,再次編譯安裝native
./configure --with-apr=/usr/local/apr --with-java-home=/usr/local/jdk --with-ssl=/usr/local/openssl
make && make install

安裝完成後提示:"have your system administrator add LIBDIR to ‘/etc/ld.so.conf‘"
需要添加庫文件:
vim /etc/ld.so.conf
/usr/local/apr/lib ##添加此行
[root@localhost native]# ldconfig
[root@localhost native]# echo "ldconfig" >>/etc/rc.local
添加環境變量:
[root@localhost native]# vim /etc/profile
最後添加:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
export LD_RUN_PATH=$LD_RUN_PATH:/usr/local/apr/lib
重讀生效:
[root@localhost native]#source /etc/profile

編輯tomcat配置文件
vim server.xml
protocol="org.apache.coyote.http11.Http11AprProtocol" #修改HTTP/1.1協議內容

重啟tomcat,就會看到協議已經換成apr
lifecycleEvent Loaded APR based Apache Tomcat Native library 1.2.16 using APR version 1.6.5.
如果是CentOS7,apr、openssl直接yum安裝即可使用,省去很多編譯安裝的繁瑣步驟

CentOS6系統tomcat配置apr--踩坑之作