Tomcat 可以使用 APR 来提供超强的可伸缩性和性能,更好地集成本地服务器技术。 APR(Apache Portable Runtime) 是一个高可移植库,它是 Apache HTTP Server 2.x 的核心。 APR 有很多用途,包括访问高级 IO 功能 ( 例如 sendfile,epoll 和 OpenSSL) , OS 级别功能 ( 随机数生成,系统状态等等 ) ,本地进程管理 ( 共享内存, NT 管道和 UNIX sockets) 。这些功能可以使 Tomcat 作为一个通常的前台 WEB 服务器,能更好地和其它本地 web 技术集成,总体上让 Java 更有效率作为一个高性能 web 服务器平台而不是简单作为后台容器。

在产品环境中,特别是直接使用 Tomcat 做 WEB 服务器的时候,您应该使用 Tomcat Native 来提高其性能,详细配置和安装请参考 Tomcat 文档。

如果没有 apr 技术,启动 tomcat 时出现如下提示:

信息 : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/jdk1.6.0_06/jre/lib/i386/client:/usr/java/jdk1.6.0_06/jre/lib/i386:/usr/java/jdk1.6.0_06/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib

按照官方说明需要:

* APR library

* OpenSSL libraries

openssl 可以用 yum install openssl-devel , apr 还是下载 *.gz 来安装。

apr-1.3.2.tar.gz

apr-util-1.3.2.tar.gz

两个可以在 http://apache.mirror.phpchina.com/apr/ 找到。

tomcat-native.tar.gz 可以在 tomcat/bin 目录下找到。

下面是 APR 的配置过程:

安装 apr

1. tar zxvf apr-1.3.2.tar.gz

2. cd apr-1.3.2

3. ./configure --prefix=/usr/local/apr

4. make

5. make install

apr 默认安装在 /usr/local/apr

安装 apr-util

1. tar zxvf apr-util-1.3.2.tar.gz

2. cd apr-util-1.3.2

3. ./configure --with-apr=/usr/local/apr

4. make

5. make install

安装 tomcat-native

1. cd /usr/local/tomcat7.myweb/bin

2. tar zxvf tomcat-native.tar.gz

3. cd tomcat-native-1.1.14-src/jni/native

4. ./configure --with-apr=/usr/local/apr --with-java-home=/usr/java/jdk1.7.0_60

5. make

6. make install

设置 apr 的环境变量:

1. vi /etc/profile

2. 添加以下内容

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$APR_HOME/lib

3. 使配置生效 source /etc/profile

为不影响其他 tomcat的配置,我们不采用上面的设置方法,而是直接在 tomcat bin下的 catalina.sh中加入如下配置:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib

export LD_LIBRARY_PATH

启动 tomcat 后,看日志,有如下一行:

信息 : APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].

-------------------------------------------------------------------------------------------------

创建高线程的 Connector

<Connector port=”8080 ″ redirectPort=”8443 ″
maxThreads=”5000 ″  默认 200 300

minSpareThreads=”1000 ″ 默认 4 50

maxSpareThreads=”4000 ″ 默认50 100
enableLookups=”false”  默认 true

acceptCount=”3500 ″ 默认10 50
compression=”on”  默认 off

compressableM imeType=”text/html,text/xml,text/javascript,text/css,text/plain” 默认 text/html,text/xml,text/plain
connectionTimeout=”60000 ″ 默认 60000

debug=”0 ″

URIEncoding=”UTF -8 ″

/ >

tomcat APR的配置的更多相关文章

  1. Linux下配置tomcat+apr+native应对高并发

    摘要:在慢速网络上Tomcat线程数开到300以上的水平,不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待.但是配上APR之后,Tomcat将以JNI的形式调用Apache HTTP服 ...

  2. (转)Linux下配置tomcat+apr+native应对高并发

    摘要:在慢速网络上Tomcat线程数开到300以上的水平,不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待.但是配上APR之后,Tomcat将以JNI的形式调用Apache HTTP服 ...

  3. Tomcat 8.5 apr 模式配置

    tomcat APR模式配置 一.环境 操作系统:Ubutnu 14 ubuntu@ubuntu:~$ uname -a Linux ubuntu 4.4.0-31-generic #50~14.04 ...

  4. tomcat 的优化配置

    一.关于并发连接量的配置 在tomcat的server.xml配置文件中:将<Connector port="8080" protocol="HTTP/1.1&qu ...

  5. Tomcat server.xml配置示例

    本文由 ImportNew 几乎所有容器类型的应用都会包含一个名为 server.xml 的文件结构.基本上,其中的每个元数据或者配置都是容器完成初始化所需要的.正是由于这些内容都是可配置的,使得软件 ...

  6. Tomcat 7.0配置SSL的问题及解决办法

    http://dong-shuai22-126-com.iteye.com/blog/1830209   以前一直在用Tomcat 6.0.29版本,今下载了apache-tomcat-7.0.33- ...

  7. Linux+Apache+Tomcat集群配置

    参考: http://blog.csdn.net/bluishglc/article/details/6867358# http://andashu.blog.51cto.com/8673810/13 ...

  8. Nginx与Tomcat安装、配置与优化

    Nginx与Tomcat安装.配置与优化 Nginx与Tomcat安装.配置与优化 Nginx的安装与使用 Nginx是一款优秀的反向代理服务器 安装: rpm(或者是pkg安装),是预编译好的程序包 ...

  9. Tomcat access log配置

    在tomcat的access中打印出请求的情况可以帮助我们分析问题,通常比较关注的有访问IP.线程号.访问url.返回状态码.访问时间.持续时间. 在Spring boot中使用了内嵌的tomcat, ...

随机推荐

  1. js 数组方法比较

    js 数组方法比较 table th:first-of-type { width: 80px; } table th:nth-of-type(2) { width: 120px; } table th ...

  2. AtomicStampedReference、AtomicMarkableReference 区别

    AtomicMarkableReference 描述的是更加简单的是与否的关系,它的定义就是将数据变换为true 或 false,通常ABA问题只有两种状态,AtomicMarkableReferen ...

  3. JVM内存模型(二)

    JVM为什么要区分为栈和堆? 栈代表的操作逻辑存储,堆代表的是数据逻辑存储,这样来划分更加清晰: JVM的内存在宏观上面来讲分为私有内存和共享内存:所谓共享内存(堆)寓意就是各个私有的栈(每个线程私有 ...

  4. 转 Fiddler导出jmeter脚本

    前提条件:                1.下载安装抓包工具Fiddler                2.下载Fiddler插件,参考下载地址:http://download.csdn.net/ ...

  5. 编程中检查IIS7组件的安装情况

    http://learn.iis.net/page.aspx/135/discover-installed-components/说明:ASP.NET网络应用程序在IIS7上部署的时候,经常会要求预装 ...

  6. Date类型之继承方法

    ECMAScript中的Date类型是在早期Java中的java.util.Date类型基础上构建的.为此,Date类型使用自UTC(国际协调时间)1970年1月1日午夜零时开始经过的毫秒数来保存日期 ...

  7. appium+python自动化42-微信公众号

    前言 本篇介绍如何在微信公众号上自动化测试,以操作我的个人公众号:yoyoketang为例,没关注的,先微信关注了,再跟着操作 环境准备: python 3.6 appium 1.7以上版本 微信6. ...

  8. 用几分钟了解R语言入门知识

    第一篇——用几分钟了解R语言入门知识 第二篇——用几分钟了解R语言入门知识(续) 关于数据分析学习笔记的计划(以及目录)

  9. python3+selenium3.13的简单操作

    1.浏览器 1.1 浏览器窗口大小位置 driver.set_window_size(self, width, height, windowHandle) 将某个窗口设置为固定大小 driver.se ...

  10. CORS跨域的概念与TP5的解决方案

    namespace app\api\behavior; use think\Response; class CORS{ public function appInit(&$params) { ...