zoukankan      html  css  js  c++  java
  • 基于APR模式的Tomcat8环境部署

    1、版本信息

    组件名

    版本号

    jdk 1.8.111
    tomcat 8.5.9
    apr 1.6.3
    apr-iconv 1.2.2
    apr-util 1.6.2
    tomcat-native 1.2.10

    2、Tomcat Connector的运行模式

    首先大致了解Tomcat Connector的三种运行模式:bio、nio和apr

    bio

    bio(blocking I/O),顾名思义,即阻塞式I/O操作,表示Tomcat使用的是传统的Java I/O操作(即java.io包及其子包)。Tomcat在默认情况下,就是以bio模式运行的。遗憾的是,就一般而言,bio模式是三种运行模式中性能最低的一种。我们可以通过Tomcat Manager来查看服务器的当前状态。

    nio

    nio(new I/O),是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。Java nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的缩写。它拥有比传统I/O操作(bio)更好的并发运行性能。要让Tomcat以nio模式来运行也比较简单,我们只需要在Tomcat安装目录/conf/server.xml文件中将如下配置:

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

    中的protocol属性值改为org.apache.coyote.http11.Http11NioProtocol即可

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

    此时,我们就可以在Tomcat Manager中看到当前服务器状态页面的HTTP协议的Connector运行模式已经从http-bio-8080变成了http-nio-8080

    apr

    apr(Apache Portable Runtime/Apache可移植运行时),是Apache HTTP服务器的支持库。你可以简单地理解为,Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大地提高Tomcat对静态文件的处理性能。 Tomcat apr也是在Tomcat上运行高并发应用的首选模式。如果我们的Tomcat不是在apr模式下运行,在启动Tomcat的时候,我们可以在日志信息中看到类似如下信息:

    24-Feb-2018 16:39:15.368 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [http-apr-8080]
    24-Feb-2018 16:39:15.373 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [ajp-nio-8009]
    24-Feb-2018 16:39:15.374 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 53916 ms

    Tomcat apr运行模式的配置是三种运行模式之中相对比较麻烦的一种。据官方文档所述,Tomcat apr模式需要安装以下三个组件:

         •  APR library[APR库]

         •  JNI wrappers for APR used by Tomcat (libtcnative) [在Windows操作系统上,就是一个名为tcnative-1.dll的动态链接库文件]

         •  OpenSSL libraries[OpenSSL库]

    Tomcat6.x从6.0.32开始以及Tomcat7.x从7.0.30开始,Windows版的Tomcat已经在bin目录下自带了tcnative-1.dll等文件,并且启动后默认就运行在apr模式下,因此对于Windows操作系统我们只需要下载最新版本的Tomcat直接使用即可。而Linux版的Tomcat在bin目录下自带的是tomcat-native.tar.gz,这个包是需要和APR库一起编译安装后才能使用的。

    3、在Linux下安装apr

    在安装之前需要安装依赖包

    yum install expat-devel gcc -y

    1. 下载所需的包

    apr/apr-iconv/apr-util的下载路径:http://apr.apache.org/download.cgi
    本文档下载的是软件是如下版本
    apr-1.6.3.tar.gz 
    apr-iconv-1.2.2.tar.gz
    apr-util-1.6.1.tar.gz
    tomcat-native下载路径:http://archive.apache.org/dist/tomcat/tomcat-connectors/native
    本文档下载的是tomcat-native-1.2.10-src.tar.gz,如果是Tomcat7.0.30之后的版本也可到tomcat安装目录的bin下面找tomcat-native.tar.gz 

    2. 安装apr

    tar zxvf apr-1.6.3.tar.gz 
    cd apr-1.6.3
    ./configure --prefix=/usr/local/apr
    make
    make install

    3. 安装apr-iconv

    tar -zxvf apr-iconv-1.2.2.tar.gz
    cd apr-iconv-1.2.2
    ./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
    make
    make install

    4. 安装apr-util

    tar zxvf apr-util-1.6.1.tar.gz
    cd 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

    5. 安装openssl(版本>1.0.2)

    openssl > 1.0.2以上 (下面用1.1.0e) 下载

    tar -xzvf openssl-1.1.0e.tar.gz
    cd openssl-1.1.0e
    ./config --prefix=/usr/local/openssl 
    make && make install 

    //备份原来的

    mv /usr/bin/openssl /usr/bin/openssl.bak
    mv /usr/include/openssl /usr/include/openssl.bak

    //建立软连接

    ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
    ln -s /usr/local/openssl/include/openssl /usr/include/openssl

    //设置到运行库

    echo "/usr/local/openssl/lib">>/etc/ld.so.conf

    //查看设置状态

    ldconfig -v
    openssl version -a

    6、安装tomcat-native

    tar zxvf tomcat-native-1.2.10-src.tar.gz
    cd tomcat-native-1.2.10-src/native
    (如版本是tomcat-native-1.1.x-src.tar.gz 则路径是tomcat-native-1.1.x-src/jni/native)
    ./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.8.111 --with-ssl=/usr/local/openssl
    make make install

    7. 添加环境变量

    编辑/etc/profile 在文件末尾处添加下面的变量 
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib   
    然后执行下面命令,使环境变量即时生效
    source /etc/profile
     
    或者修改tomcat启动脚本catalina.sh/cactalina.bat
    在文件中加入启动参数:
        JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"
    或者:
        CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/local/apr/lib"

    8. 验证

    看到类似这样的信息就证明 apr 启动成功了。
    24-Feb-2018 16:39:15.368 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [http-apr-8080]
    24-Feb-2018 16:39:15.373 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [ajp-nio-8009]
    24-Feb-2018 16:39:15.374 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 53916 ms
  • 相关阅读:
    CXF.bat
    终于懂了:FWinControls子控件的显示是由Windows来管理,而不是由Delphi来管理(显示透明会导致计算无效区域的方式有所不同——透明的话应减少剪裁区域,所以要进行仔细计算)
    DELPHI语法基础学习笔记-Windows 句柄、回调函数、函数重载等(Delphi中很少需要直接使用句柄,因为句柄藏在窗体、 位图及其他Delphi 对象的内部)
    Delphi体系内部的4种消息传递办法(Send,Post,Perform,Dispatch)
    delphi高手突破之异常及错误处理
    Android 短信模块分析(三) MMS入口分析
    delphi如何加上spliter分割条,任意调整大小
    浅拷贝与深度拷贝(原型模式)
    delphi高手突破学习笔记之面向对象类和对象的本质(有汇编解释 good)
    delphi模态窗体最小化会隐藏的问题
  • 原文地址:https://www.cnblogs.com/chillax1314/p/8467059.html
Copyright © 2011-2022 走看看