Tomca教程
Tomcat Manager
Tomcat Realm 配置
Tomcat 安全管理
Tomcat JNDI 资源
Tomcat JDBC 数据源
Tomcat 类加载机制
Tomcat JSPs
Tomcat SSL/TLS配置
Tomcat SSI
Tomcat CGI
Tomcat 代理支持
Tomcat MBean 描述符
Tomcat 默认 Servlet
Tomcat 集群
Tomcat 连接器
Tomcat监控与管理
Tomcat 日志机制
Tomcat 基于 APR 的原生库
Tomcat 虚拟主机
Tomcat 高级 IO 机制
Tomcat 附加组件
Tomcat 安全性注意事项
Tomcat Windows 服务
Tomcat Windows 认证
Tomcat 的 JDBC 连接池
Tomcat WebSocket 支持
Tomcat 重写机制

Tomcat 基于 APR 的原生库

Tomcat基于 APR 的原生库简介

Tomcat 可以使用 Apache Portable Runtime(APR) 来增强可扩展性与性能,并能更好地与原生服务器技术相集成。APR 是一种具有高度可移植性的类库,是 Apache HTTP Server 2.x 的核心。APR 具有许多用途,包括访问高级 IO 功能(比如 sendfile、epoll 和 OpenSSL)、系统级功能(随机数生成、系统状态,等等)以及原生进程处理(共享内存、NT 管道、UNIX 套接字)。

这些特性能让 Tomcat 成为一种通用的 Web 服务器,更使其更好地与原生的 Web 技术相集成。从整体上来说,这使得 Java 越来越有望成为一个成熟的 Web 服务器平台,而不单纯是一种仅仅着重研究后端的技术。

安装

APR 支持需要安装三个关键的原生组件:

  • APR 库
  • Tomcat 所用的 》JNI 包装器
  • OpenSSL 库

Windows

Windows 安装文件从这里下载 32 位或 AMD 64 位,里面是包含 OpenSSL 和 APR 的集合文件。

Linux

多数 Linux 分发版都会自带 APR 与 OpenSSL 包。JNI 包装器(litcnative)然后被编译。它依赖 APR、OpenSSL 与 Java 头。

需要:

  • APR 1.2+ 开发头(libarp-1 dev package)
  • OpenSSL 》》》
  • Java compatible JDK 1.4+》》
  • GNU 开发环境(gcc,make)

APR 组件

当所有的库都正确安装好且适用于 Java(如果加载失败,就会显示相关的库路径),Tomcat 连接器就会自动使用 APR。这里,连接器的配置跟通常的配置没什么不同,但会用一些特别的属性来配置 APR 组件。对于大多数用例来说,这些属性的默认值都已经非常适用了,根本不需要再加以微调。

当启用 APR 时,Tomcat 同样也启用了下面这些功能:

  • 默认在所有平台安全会话 ID 生成(Linux 之外的平台需要随机数生成使用配置好的熵)。
  • 关于Tomcat 进程的内存使用和 CPU 使用情况的 OS 级统计,由status servlet所显示。

配置 APR 生命周期侦听器(APR Lifecycle Listener)

AprLifecycleListener

属性

描述

SSLEngine

所要使用的 SSLEngine 名称。off:不使用 SSL。on:使用 SSL,但没有特定引擎。默认值为 on。这将初始化原生的 SSL 引擎,然后使用 SSLEnabled 属性在连接器中》》》。范例:

请访问 OpenSSL 官方网站以详细了解 SSL 硬件引擎与制造商的相关信息。

配置 APR 连接器

HTTP/HTTPS

关于 HTTP 配置的相关信息,可查阅 HTTP 连接器配置文档。
关于 HTTPS 配置的相关信息,可查阅 HTTPS 连接器配置文档。

下面这个范例介绍了 SSL 连接器的声明:

AJP

关于 AJP 配置的相关信息,可查阅 AJP 连接器配置文档