CentOS7 + JDK8 + Tomcat8.5 實現HTTP/2服務
阿新 • • 發佈:2020-08-27
需要在作業系統中安裝libtcnative
庫
一、環境準備
1.1 安裝APR
下載apr-1.7.0.tar.gz、apr-util-1.6.1.tar.gz ,下載地址https://mirror.bit.edu.cn/apache/apr/
上傳至/home 目錄下後解壓;
執行:
#cd /home/apr-1.7.0 #./configure #make #make install
cd /home/apr-util-1.6.1 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr make make install
1.2 下載安裝openSSL,地址 https://www.openssl.org/source/
cd /home/openssl ./config make make install
1.3 下載安裝Tomcat Native,地址http://tomcat.apache.org/download-native.cgi
同樣解壓後執行:
cd /home/tomcat-native-1.2.24-src/native ./configure --with-apr=/usr/local/apr --with-ssl=/usr/local/openssl --with-java-home=${JAVA_HOME} make make install
1.4 配置 /etc/profile 檔案,在末尾追加紅色資訊:
unset i unset -f pathmunge if [ -n "${BASH_VERSION-}" ] ; then if [ -f /etc/bashrc ] ; then # Bash login shells run only /etc/profile # Bash non-login shells run only /etc/bashrc # Check for double sourcing is done in /etc/bashrc. . /etc/bashrc fi fi export JAVA_HOME=/usr/java/jdk1.8.0_131 export JRE_HOME=${JAVA_HOME}/jre export HADOOP_HOME=/home/hadoop-3.3.0 export HIVE_HOME=/home/hive-3.1.2 export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH:$HIVE_HOME/bin:$JAVA_HOME/bin export LD_LIBRARY_PATH=/usr/local/apr/lib:$LD_LIBRARY_PATH
二、配置tomcat 8.5
1、在/home/apache-tomcat-8.5-jjdemo/bin 目錄中建立setenv.sh檔案, 內容如下:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib
export LD_LIBRARY_PATH
2、修改server.xml 檔案的Connector 節點資訊:
<Connector port="996" keepAliveTimeout="15" maxKeepAliveRequests="200" maxThreads="5000" minSpareThreads="50" acceptCount="500" acceptorThreadCount="500" URIEncoding="UTF-8" enableLookups="false" compression="on" compressionMinSize="10240" noCompressionUserAgents="gozilla,traviata" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" connectionTimeout="20000" disableUploadTimeout="true" protocol="org.apache.coyote.http11.Http11Nio2Protocol" SSLEnabled="true" > <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" /> <SSLHostConfig> <Certificate certificateKeyFile="conf/cert/4016613_jjdemo.xuetz.com.key" certificateFile="conf/cert/4016613_jjdemo.xuetz.com.pem" type="RSA" /> </SSLHostConfig> </Connector>
其中證書從阿里雲SSL證書的“其他”類別中下載:
3、重啟tomcat 檢視日誌資訊,出現以下資訊表示配置成功:
27-Aug-2020 11:01:51.545 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/home/apache-tomcat-8.5-jjdemo/temp
27-Aug-2020 11:01:51.545 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.24] using APR version [1.7.0].
27-Aug-2020 11:01:51.545 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
27-Aug-2020 11:01:51.545 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
27-Aug-2020 11:01:51.552 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.0.2u 20 Dec 2019]
27-Aug-2020 11:01:51.662 INFO [main] org.apache.coyote.http11.AbstractHttp11Protocol.configureUpgradeProtocol The ["https-openssl-nio2-996"] connector has been configured to support negotiation to [h2] via ALPN
27-Aug-2020 11:01:51.663 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["https-openssl-nio2-996"]
4、訪問頁面後,檢視localhost_access_log.2020-08-27.txt 檔案,出現HTTP/2.0表示執行成功:
110.87.56.235 - - [27/Aug/2020:11:02:38 +0800] "GET /jjdemo/page/main.jsp HTTP/2.0" 302 -
110.87.56.235 - - [27/Aug/2020:11:02:39 +0800] "GET /jjdemo/page/loginXuetz.jsp HTTP/2.0" 200 8425
110.87.56.235 - - [27/Aug/2020:11:02:39 +0800] "GET /jjdemo/base/user/imageCode?width=150 HTTP/2.0" 200 1979
110.87.56.235 - - [27/Aug/2020:11:02:45 +0800] "POST /jjdemo/base/user/doLogin HTTP/2.0" 200 29
110.87.56.235 - - [27/Aug/2020:11:02:45 +0800] "GET /jjdemo/page/main.jsp HTTP/2.0" 200 15956
110.87.56.235 - - [27/Aug/2020:11:02:45 +0800] "GET /rescore/easyui/themes/default/images/loading.gif HTTP/2.0" 404 1048
110.87.56.235 - - [27/Aug/2020:11:02:45 +0800] "GET /rescore/easyui/themes/default/images/loading.gif HTTP/2.0" 404 1048
110.87.56.235 - - [27/Aug/2020:11:02:45 +0800] "POST /jjdemo/esm/api/visit/count HTTP/2.0" 200 60
110.87.56.235 - - [27/Aug/2020:11:02:45 +0800] "POST /jjdemo/esm/api/visit/week HTTP/2.0" 200 51