23.APR/Native

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位的版本。

23.APR/Native(一个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.

上一篇:总结java中创建并写文件的5种方式


下一篇:git连接不上远程仓库---visualstudio提交代码报错:no upstream configured for branch 'master'