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. 爬虫开发5.requests模块的cookie和代理操作

    代理和cookie操作 一.基于requests模块的cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests ...

  2. NOI2014起床困难综合症

    Description 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm 一直坚持与起床困难综合症作斗争.通过研究相关文献,他找 ...

  3. IntelliJ IDEA 如何将一个 filename.java 文件直接运行

    IntelliJ IDEA 如何将一个 filename.java 文件直接运行 前言: ​ 出于考证需要,手头有许多 *.java 文件需要进行运行.然后出于对 JetBrains 全家桶的喜爱,选 ...

  4. iOS 发送位置消息

    发送地理位置在社交应用里面是很常用的需求.最近也需要在自己的应用里面加入这个功能 首先我们需要获取自己的地理位置,这里用到 CLLocationManager 这个类,调用如下代码 locationM ...

  5. Extjs在form展示后台单个对象的属性

    目的:写一个按钮事件,点击时弹出一个win窗体,里面镶嵌form表单,并且展示后台单个对象的属性 先来后台: public void find(){ String clientId = request ...

  6. Ionic 2 :如何实现列表滑动删除按钮

    http://blog.csdn.net/h254532699/article/details/54382123 使用Ionic这种框架伟大的地方在于用户界面元素默认准备好了,意味着你可以设计更好的a ...

  7. [jvm]运行时数据区域详解

    了解虚拟机是怎么使用内存的,有助于我们解决和排查内存泄漏和溢出方面的问题.详解java虚拟机内存的各个区域,分析这些区域的作用服务对象以及可能发生的问题. 一.运行时数据区域 java虚拟机在执行ja ...

  8. Nodejs连接数据库为何使用连接池

    问题一.nodejs既然是单线程运行,在连接数据库时为何要使用连接池呢? 问题二,redis服务端是单线程运行的,使用连接池到redis,服务端还是串行处理,有什么意义么? 这两个问题都涉及到单线程与 ...

  9. 单据列表里无法找到ERP系统开发需求单,但是业务对象里可以找到

    当从测试库迁移正式库时,如果新增了子系统,那么两边的子系统ID是不一样的 在BOS里修改单据的子系统只能修改业务对象列表里的子系统ID,单据列表里没有跟着一起修改 所以单据列表里的子系统ID需要手工去 ...

  10. C++ 创建类时常考虑的问题

    目录 继承 抽象接口 标准设计模式 初始化与析构模型 定义复制构造函数和赋值操作 模板 操作符 类型转换操作符 友元 非功能性约束 本文仅以c++为例,简要说明创建一个类时我们需要考虑的问题.创建一个 ...