介绍
Tomcat 可以使用 Apache Portable Runtime 来提供更好的可扩展性、性能以及与本地服务器技术的更好集成。 Apache Portable Runtime 是一个高度可移植的库,是 Apache HTTP Server 2.x 的核心。 APR 有许多用途,包括访问高级 IO 功能(如 sendfile、epoll 和 OpenSSL)、 操作系统级功能(随机数生成、系统状态等)以及本地进程处理(共享内存、NT 管道和 Unix 套接字)。
这些特性使 Tomcat 成为一个通用的 Web 服务器,将能够更好地与其他原生 Web 技术集成, 并且总体上使 Java 作为一个成熟的 Web 服务器平台更加可行,而不仅仅是一个以后端为中心的技术。
安装
APR 支持需要安装三个主要的原生组件:
-
APR 库
-
Tomcat 使用的 APR 的 JNI 包装器 (libtcnative)
-
OpenSSL 库
Windows
Windows 二进制文件提供了 tcnative-1,这是一个静态编译的 .dll,包含 OpenSSL 和 APR。 它可以从 此处 下载, 提供 32 位或 AMD x86-64 二进制文件。 在注重安全的生产环境中,建议为 OpenSSL、APR 和 libtcnative-1 使用单独的共享 dll, 并根据安全公告按需更新它们。 Windows OpenSSL 二进制文件可从官方 OpenSSL 网站链接获取(见相关/二进制文件)。
Linux
大多数 Linux 发行版将提供 APR 和 OpenSSL 的软件包。 然后,必须编译 JNI 包装器 (libtcnative)。它依赖于 APR、OpenSSL 和 Java 头。
要求:
-
APR 1.2+ 开发头文件 (libapr1-dev 包)
-
OpenSSL 1.0.1+ 开发头文件(libssl-dev 包)
-
来自 Java 兼容 JDK 1.4+ 的 JNI 头文件
-
GNU 开发环境 (gcc, make)
包装器库源位于 Tomcat 二进制捆绑包的 bin/tomcat-native.tar.gz 归档中。
安装构建环境并提取源存档后,可以使用 (从包含 configure 脚本的文件夹中) 编译包装器库:
./configure && make & & make install
APR 组件
正确安装库并 Java 可使用后(如果加载失败,将显示库路径), Tomcat 连接器将自动使用 APR。
一旦库被正确安装并且Java可以使用(如果加载失败,将显示库路径),Tomcat连接器将自动使用APR。 连接器的配置类似于常规连接器,但有一些额外的属性用于配置APR组件。 请注意,对于大多数用例,默认设置已经经过良好调优,通常不需要额外调整。
启用APR时,Tomcat中还会启用以下功能:
-
默认在所有平台上生成安全的会话ID(在Linux以外的平台上,需要使用配置的熵进行随机数生成)
-
状态Servlet会显示Tomcat进程的内存使用和CPU使用的操作系统级别统计
APR 生命周期侦听器配置
请参阅 listener 配置。
APR 连接器配置
HTTP/HTTPS
有关 HTTP 配置,请参阅 HTTP 连接器配置文档。
有关 HTTPS 配置,请参阅 HTTPS 连接器配置文档。
示例 SSL 连接器声明如下:
./configure && make & & make install
<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
有关 AJP 配置,请参阅 AJP 连接器配置文档。