Apache Portable Runtime (APR) based Native library for Tomcat

Table of Contents

Introduction

Tomcat可以用APR提供更高性能,更高的扩展性,更好的本地服务器端机制。APR是一个高性能的库,其使用在HTTP Server 2.x中。对于APR有很多的用法,其中包括高级IO特性(如sendfile,epoll,openssl),操作系统层级的机制(随机数的生成,系统状态查看等等),还有本地进程IPC机制(共享内存,pipeline,基于Unix的套接字编程)。

这些特性可以让Tomcat变成一个更加通用的webserver,有更好的与本地的native资源集成,利用java语言变成更加成熟可靠的webserver平台。

Installation

APR 需要下面的三个native组件安装:

  • APR库
  • 对APR的包装tomcat-native (libtcnative)
  • OpenSSL库

Windows

Windows的二进制库为tcnative-1,这个直接被编译成.dll文件,这个dll文件中包含openssl和APR。你可以从 here下载到32位和AMDx86-64位的版本。

(一个dll全部包含)

在一些安全的场景中,建议使用分开的openssl,APR,libtcnative-1,并且根据适当的版本进行更新。

windows的openssl库的位置在 Official OpenSSL website

Linux

大多数的Linux发行版都带了APR和Openssl。JNI的包装(libtcnative,实际上就是tomcat-native)也同样需要被编译。

要求:

  • APR 1.2+ development headers (libapr1-dev package)
  • OpenSSL 1.0.2+ development headers (libssl-dev package)
  • JNI headers from Java compatible JDK 1.4+
  • GNU development environment (gcc, make)

tomcat-native的源码在Tomcat的二进制的包中, in the bin/tomcat-native.tar.gz archive. 环境变量需要进行安装(from the folder containing the configure script):

./configure && make && make install

APR Components

一旦库被正确进行安装了,并且可以提供给java进行使用(如果失败了,Library的路径会被提示出来),Tomcat的连接器会自动的使用APR。配置APR的连接器就像配置其他的连接器一样简单,只需一些属性配置。

当APR启动后,下面的特性会加入到Tomcat中:

  • 操作系统级别提供的安全的SessionID
  • 操作系统层级的内存管理,cpu利用率,可以在Tomcat的status的Servlet中监控出来

APR Lifecycle Listener Configuration

APR Connectors Configuration

HTTP/HTTPS

For HTTP configuration, see the HTTP connector configuration documentation.

For HTTPS configuration, see the HTTPS connector configuration documentation.

An example SSL Connector declaration is:

<Connector port="443" maxHttpHeaderSize="8192"
                 maxThreads="150"
                 enableLookups="false" disableUploadTimeout="true"
                 acceptCount="100" scheme="https" secure="true"
                 SSLEnabled="true"
                 SSLCertificateFile="${catalina.base}/conf/localhost.crt"
                 SSLCertificateKeyFile="${catalina.base}/conf/localhost.key" />

AJP

For AJP configuration, see the AJP connector configuration documentation.

23.APR/Native的更多相关文章

  1. java+tomcat(apr,native)

    #pdd 2014_12-24#安装java环境rpm -ivh jdk-7u72-linux-x64.rpm vim /etc/profile #set for java export JAVA_H ...

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

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

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

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

  4. i.Windows下APR安装过程

    1.下载安装native Windows下的APR安装和配置比较简单,可以直接下载Tomcat-native的二进制的版本包: 下载之后的目录结构为: tcnative-1.dll这个库已经包含了AP ...

  5. k.APR通道特殊配置

    APR/native specific configuration The following attributes are specific to the APR/native connector. ...

  6. Tomcat Connector三种运行模式(BIO, NIO, APR)的比较和优化

    Tomcat Connector的三种不同的运行模式性能相差很大,有人测试过的结果如下: 这三种模式的不同之处如下: BIO: 一个线程处理一个请求.缺点:并发量高时,线程数较多,浪费资源. Tomc ...

  7. Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式及apr配置

    转: http://www.oschina.net/question/54100_16195omcat的运行模式有3种.修改他们的运行模式.3种模式的运行是否成功,可以看他的启动控制台,或者启动日志. ...

  8. Tomcat 使用apr优化

    最近业务服务器出现了一些问题,Nginx傲娇了,准备把加Nginx插件上的一些处理逻辑扔到后端的Tomcat的业务处理里面去,考虑到tomcat目前本来就压力山大,所以弄了弄apr库来优化tomcat ...

  9. React Native专题

    转载注明出处:地址:http://www.lcode.org本文出自:[江清清的技术专栏]本React Native讲解专题:主要讲解了React Native开发,由基础环境搭建配置入门,基础,进阶 ...

随机推荐

  1. 【C语言学习笔记】存储类、链接和内存管理

    因为对内存管理部分一直没有很清楚的思路,所以一直在找资料想系统看一下这部分的内容.在C primer plus里看到了这一章,虽然大多都是心知肚明的东西,但是还是很多概念性系统性的东西让我眼前一亮,把 ...

  2. Python开发【第七章】:Python面向对象进阶

    1.静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类 ...

  3. kibana使用操作部分

      1.kibana的概念及特点. 概念:数据可视化平台工具 特点: - 灵活的分析和可视化平台 - 实时总结和流数据的图表 - 为不同的用户显示直观的界面 - 即时分享和嵌入的仪表板   2.kib ...

  4. Java学习——增强for循环、switch

    增强for循环 Java5引入了一种主要用于数组的增强型for循环. 例子 public class ForTest { public static void main(String args[]){ ...

  5. mysql中engine=innodb和engine=myisam的区别

    最开始用MySQL Administrator建数据库的时候,表缺省是InnoDB类型,也就没有在意.后来用Access2MySQL导数据的时候发现只能导成 MyISAM类型的表,不知道这两种类型有什 ...

  6. jqueryui引用出错(base is not a constructor,widget no found)

    出错的原因,主要是引用顺序出错. 正确顺序如下: query本身必须放在第一位: <script src="../../../Scripts/Jquery1.7.2/jquery-1. ...

  7. C语言回顾-常量和变量

    1.C语言共32个关键字 1)数据类型关键字 a.基本数据类型 void char int float double b.类型修饰关键字 short long signed unsigned c.复杂 ...

  8. Objective-C语言继承性

    • 继承性是面向对象的重要概念之一,子类能够继承父类的某些方法和成员变量.作用域限定符为private 的成员变量是不可以被继承的.子还可以重写父类的方法. • 继承是单继承,要多继承引入了协议 •子 ...

  9. javaWeb 数据库连接池连接数据库

    需要的公共jar包 mysql-connector-java-5.0.8-bin.jar(mysql数据库)   ojdbc14.jar(oracle数据库) A.DBCP 需要jar包: commo ...

  10. Dynamics AX 2012 R2 从代码中调用SSRS Report

    平时,我们制作SSRS Report的方法主要有两种:使用Query或RDP.如果需要为报表传递参数,就要在代码中为报表参数赋值,然后在代码中调用报表.下面我总结下这两种报表在代码中传参和调用的方式: ...