日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tomcat runing on daemon with apr and ssl mode

發布時間:2025/3/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tomcat runing on daemon with apr and ssl mode 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:

簡要介紹下tomcat 的三種運行模式,記錄基于apr模式及支持SSL模式的安裝方式


環境:

本文主要基于ubuntu 安裝tomcat 7,與基于centos并無太大差異,主要差異在于相關依賴包的名稱,在此會給出centos 所需的依賴包名稱。


模式簡介:

BIO模式:阻塞試I/O操作,表示Tomcat 使用傳統java I/O 操作(即java.io包及其子包)。tomcat7及以下版本默認以bio模式運行,由于每個請求都要創建一個線程來處理,線程開銷較大,不能處理高并發場景,在三種模式中性能最低。

NIO模式:是Java SE 1.4及后續版本提供的一種新的I/O 操作方式(即java.nio包及其子包)。是一個基于緩沖區、并能提供非阻塞I/O 操作的Java API,它擁有比傳統I/O (bio)更好的并發運行性能。 如使用NIO模式,需將server.xml內protocol值配置為如下值:

<Connector?port="8080"?protocol="org.apache.coyote.http11.Http11NioProtocol"connectionTimeout="20000"redirectPort="8443"?/>

默認為:

<Connector?port="8080"?protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"?/>


注:tomcat 8 以上版本默認使用NIO模式,無需修改。


APR模式:簡單理解,就是從操作系統級別解決異步IO問題,大幅度的提高服務器的處理和響應性能,也是tomcat運行高并發應用的首選模式。

下面介紹具體啟用APR方式。


啟用APR模式

在官方下載tomat 7,并解壓到安裝路徑/usr/local/tomcat/,下載解壓過程略


ubuntu 依賴包:

APR?1.2+?development?headers?(libapr1-dev?package) OpenSSL?0.9.7+?development?headers?(libssl-dev?package) JNI?headers?from?Java?compatible?JDK?1.4+ GNU?development?environment?(gcc,?make)

centos 依賴包:

gcc make openssl-devel??? apr-devel apr-util-devel

安裝相關依賴:

apt-get?install?libapr1-dev?libssl-dev?gcc?make?openjdk-8-jdk?-y

安裝APR動態庫:

apr相關源碼已包含在tomcat包內,bin目錄下tomcat-native.tar.gz文件

cd?/usr/local/tomcat/bin tar?zxf?tomcat-native.tar.gz cd?tomcat-native-1.2.10-src/native

配置編譯APR:

./configure?--libdir=/usr/lib?\ --prefix=/usr/local/tomcat/?\ --with-apr=/usr/bin/apr-1-config?\ --with-java-home=/usr/lib/jvm/java-8-openjdk-amd64?\ --with-ssl=yes make?&&?make?install

至此,如不啟用SSL,那tomcat已可以運行在APR模式了,若仍運行在BIO或NIO模式下,請修改server.xml配置文件,將protocol值配置為如下值

<Connector?protocol="org.apache.coyote.http11.Http11Protocol"port="8080"?.../>


基于SSL的APR模式:

若要讓tomcat SSL運行在APR模式上,需要配置SSL證書,此證書可購買、申請/生成免費版本或自簽發。此文利用自簽發證書配置實驗。

簽發證書:

openssl?genrsa?-des3?-out?tomcat.key?1024 openssl?rsa?-in?tomcat.key?-out?tomcat_np.key openssl?req?-new?-key?tomcat_np.key?-out?tomcat.csr openssl?x509?-req?-days?365?-in?tomcat.csr?-signkey?tomcat_np.key?\ -out?tomcat.crt

配置server.xml為如下值

<Connector?port="8443"?protocol="org.apache.coyote.http11.Http11AprProtocol"maxThreads="150"?SSLEnabled="true"?scheme="https"?secure="true"SSLCertificateFile="${catalina.base}/conf/tomcat.crt"SSLCertificateKeyFile="${catalina.base}/conf/tomcat_np.key"SSLVerifyClient="optional"?SSLProtocol="TLSv1+TLSv1.1+TLSv1.2" />



至此,tomcat在SSL和非SSL下都是運行在APR模式上,但還有一個問題,就是現在tomcat是運行在root 用戶上的,下面介紹如何使tomcat 運行在非root 用戶下,即以daemon模式運行。


基于daemon運行tomcat:

tomcat 二進制包提供了daemon腳本,但是基于jsvc實現的,因此需要編譯commons-daemon-native.tar.gz包內容,生成jsvc執行文件

安裝jsvc

cd?/usr/local/tomcat tar?zxf?commons-daemon-native.tar.gz cd?commons-daemon-1.0.15-native-src/unix ./configure?--with-java=/usr/lib/jvm/java-8-openjdk-amd64/ make

make后便會在tomcat/bin下面生成jsvc文件


建立運行tomcat用戶

useradd?tomcat?-M?-d?/?-s?/usr/sbin/nologin

編輯daemon.sh配置如下值

test?".$TOMCAT_USER"?=?.?&&?TOMCAT_USER=tomcat #?Set?JAVA_HOME?to?working?JDK?or?JRE JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 #?If?not?set?we'll?try?to?guess?the?JAVA_HOME


在daemon.sh腳本第二行添加

#?chkconfig:?-?80?20

修改相關目錄權限

chown?-R?tomcat.tomcat?/usr/local/tomcat

添加系統服務

ln?-s?/usr/local/tomcat/bin/daemon.sh?/etc/init.d/tomcat chkconfig?tomcat?on


至此,SSL APR daemon三種需求均已實現

如若做對tomcat做多實例,尚需對daemon.sh腳本進行修改


驗證APR

tail?logs/catalina-daemon.out? 一月?05,?2017?5:31:37?下午?org.apache.coyote.AbstractProtocol?start 信息:?Starting?ProtocolHandler?["http-apr-8080"] 一月?05,?2017?5:31:37?下午?org.apache.coyote.AbstractProtocol?start 信息:?Starting?ProtocolHandler?["http-apr-8443"] 一月?05,?2017?5:31:37?下午?org.apache.coyote.AbstractProtocol?start 信息:?Starting?ProtocolHandler?["ajp-apr-8009"] 一月?05,?2017?5:31:37?下午?org.apache.catalina.startup.Catalina?start 信息:?Server?startup?in?852?ms

? 驗證daemon

ps?-ef?|?grep?tomcat tomcat????55158??55157??0?17:31??????????00:00:13?jsvc.exec?-java-home? /usr/lib/jvm/java-8-openjdk-amd64?-user?tomcat?-pidfile? /usr/local/tomcat/logs/catalina-daemon.pid?-wait?10? -outfile?/usr/local/tomcat/logs/catalina-daemon.out? -errfile?&1?-classpath?/usr/local/tomcat/bin/bootstrap.jar: /usr/local/tomcat/bin/commons-daemon.jar: /usr/local/tomcat/bin/tomcat-juli.jar? -Djava.util.logging.config.file= /usr/local/tomcat/conf/logging.properties? -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager? -Djava.endorsed.dirs=?-Dcatalina.base=/usr/local/tomcat? -Dcatalina.home=/usr/local/tomcat? -Djava.io.tmpdir=/usr/local/tomcat/temp? org.apache.catalina.startup.Bootstrap

??

參考

http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html

http://blog.csdn.net/xyang81/article/details/51502766?????????????????????????????????????????????????????????????

轉載于:https://blog.51cto.com/morrowind/1889462

總結

以上是生活随笔為你收集整理的tomcat runing on daemon with apr and ssl mode的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。