Tomcat支持三种接收请求的处理方式:

  BIO、NIO、APR ,本文记录tomcat配置APR模式,也是首选的模式。(Tomcat7 或以下,在 Linux 系统中默认使用BIO方式)

  1. 安装依赖库,逐行执行以下命令
    yum install apr-devel
    yum install openssl-devel
    yum install gcc
    yum install make
  2. 下载native(建议使用tomcat的bin目录下默认带有的native压缩包,如果没有再去下载)
    下载地址:http://tomcat.apache.org/download-native.cgi
    解压:tar -xvzf tomcat-native-1.2.10-src.tar.gz 
    进入native目录:cd tomcat-native-1.1.10-src/native/ 
    使用./configure命令
  3. 如果执行./configure的时候出现openssl错误(如果出现APR版本问题请参考 cent OS 第十篇,并将本文第4步的configure命令改成:./configure --with-apr=/usr/local/apr --with-java-home=/usr/local/java/jdk1.8.0_144 --with-ssl=/usr/local/openssl),这其实是版本的问题,默认版本不是最新的
    到https://www.openssl.org/source/找到最新版本的下载地址(目前为1.10版本最新)
    如果打不开可以直接使用:https://www.openssl.org/source/openssl-1.1.0f.tar.gz 
    下载方法:wget 下载地址即可
    执行如下命令:
    解压:tar -xvzf openssl-1.1.0e.tar.gz
    进入:cd openssl-1.1.0e/
    执行配置:./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
    编译安装:make && make install
  4. 安装好以后,再次进入第2步的native目录
    配置:./configure --with-ssl=/usr/local/openssl
    编译安装:make && make install
  5. 进入tomcat安装目录下的conf目录,编辑配置文件:server.xml
    将默认的protocol="HTTP/1.1"修改为protocol="org.apache.coyote.http11.Http11AprProtocol"
  6. 配置启动的依赖包,有两种方式:
    方式1:
    配置tomcat安装目录下:bin/catalina.sh文件引入apr
    在原有变量JAVA_OPTS后面追加对应的配置即可,添加一行新的就可以:JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"

    方式2: 
    编辑/etc/profile在最后添加如下两行内容
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
    export LD_RUN_PATH=$LD_RUN_PATH:/usr/local/apr/lib
    执行 source /etc/profile生效

  7. 到tomcat的bin目录
  8. 逐行执行
    ./shutdown.sh
    ./startup.sh
    重启tomcat查看启动日志

    参考链接1:http://www.cnblogs.com/freeweb/p/6430053.html
    参考链接2:  http://blog.csdn.net/xyang81/article/details/51502766

八、cent OS下tomcat启用APR并发模式的更多相关文章

  1. 九、cent OS下tomcat改变日志目录

    修改catalina.out的目录bin目录下修改catalina.sh:CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out  此行内的 ...

  2. 十二 Cent OS下 tomcat启动项目响应速度很慢

    在tomcat部署了web项目,每次启动项目都需要花费2-3分钟,甚至有的时候需要花费10分钟左右,实在是太慢了. 在网上查找解决方案,把 jdk/jre/lib/security/java.secu ...

  3. Cent OS下发送邮件

    首先安装发送邮件的服务: yum install -y sendmail 安装完成之后在安装mutt yum install -y mutt 安装完成之后我们就可以发送邮件了 mutt     tes ...

  4. cent os下搭建简单的服务器

    作为常和网络打交道的程序员,经常会遇到需要服务器的场合,比如搭建一个web服务器,一个代理服务器,又或者一个小型的游戏服务器. 我时常和朋友一起玩一款叫我的世界的游戏,为了能够长期稳定地联机玩,所以特 ...

  5. Cent OS 下 VI 使用方法

    vi的基本概念  基本上vi可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: 1) 命 ...

  6. linux下tomcat配置APR方式HTTPS

    一.安装APR 创建/usr/local/apr tar zxvf apr-1.4.5.tar.gz cd apr-1.4.5 ./configure --prefix=/usr/local/apr/ ...

  7. (windows下)tomcat优化--内存,并发.缓存三方面优化

    一.内存 注: jdk1.8中废弃了-XX:PermSize和-XX:MaxPermSize的持久态(存放常量.静态变量区)配置, 多了一个元数据区(Metadata Space:默认为内存的0.2% ...

  8. 十一、cent OS下搭建SVN服务器

    安装SVN命令:yum install subversion 查看安装位置:rpm -ql subversion,我们看到它在/usr/bin目录下生成了svn的二进制文件 查看svn版本:/usr/ ...

  9. Cent OS下配置虚拟Ip地址

    1.首先我们登录操作系统 用户名root 密码 123456 然后我们输入ip查询命名 ip addr  也可以输入 ifconfig查看ip,但此命令会出现3个条目,centos的ip地址是ens3 ...

随机推荐

  1. “全栈2019”Java第五十七章:多态与构造方法详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  2. zTree API中刷新树没效果

    想刷新树,但是根据API来的refresh无效 ---------------------------------------------------------------------------- ...

  3. luoguP2479 [SDOI2010]捉迷藏

    https://www.luogu.org/problemnew/show/P2479 据说可以用线段树做但是我不会,只能写一个 KD-Tree 了 对于每个点求出距离它最远的点和最近的点的距离,然后 ...

  4. [BZOJ1935][SHOI2007]Tree 园丁的烦恼(树状数组)

    题目描述 很久很久以前,在遥远的大陆上有一个美丽的国家.统治着这个美丽国家的国王是一个园艺爱好者,在他的皇家花园里种植着各种奇花异草. 有一天国王漫步在花园里,若有所思,他问一个园丁道: “最近我在思 ...

  5. css中的左右垂直居中的问题,可兼容各种版本浏览器的写法

    如题分为垂直居中,左右居中,先挑简单的记录. 一.左右居中 1.我刚开始写代码的时候,老师就直接告诉我一个简单的方法,那就是: width:500px; height:200px; margin:0 ...

  6. The input file was not found

    错误位置: File file= new File("/report/_test/test.xls");Workbook wb1 = jxl.Workbook.getWorkboo ...

  7. 关于:maven项目中pom.xml文件添加依赖无法自动搜索的问题

    用的是eclipse 1.Window------>Show View------->Maven Repositories(这个选项一般不直接显示,而在others里面) 2.操作完毕后会 ...

  8. [译文]casperjs 的API-casper模块

    Casper class: 可以通过这个模块的create()方法来获取这个模块的一个实例,这是最容易的: var casper = require('casper').create(); 我们也可以 ...

  9. 来自Ch大学时期的第一份随笔!

    首先,还是挺开心的!因为在大学时间总算可以脱离一点高中时期的感觉,不用再上交纸质作业(这也是我为什么要选计算机专业的原因).其次就是,大学生活总算开始有一些不一样了!学习了近两年程序语言的我们,总算可 ...

  10. C++经典面试题汇总

    1. 下面代码输出什么?为什么?(初始化列表) #include<iostream> using namespace std; class Test { int m_i; int m_j; ...