鍍金池/ 教程/ Linux/ 基于 APR 的原生庫
連接器
JSPs
重寫機(jī)制
CGI
Tomcat Manager
Windows 認(rèn)證
代理支持
虛擬主機(jī)
安全性注意事項(xiàng)
如何在 Maven 中使用 Tomcat 庫
安裝
MBean 描述符
JNDI 資源
類加載機(jī)制
Tomcat Web 應(yīng)用部署
基于 APR 的原生庫
負(fù)載均衡器
安全管理
附加組件
監(jiān)控與管理
Windows 服務(wù)
集群化與會話復(fù)制
高級 IO 機(jī)制
SSI(服務(wù)器端嵌入)
WebSocket 支持
JDBC 數(shù)據(jù)源
日志機(jī)制
默認(rèn) Servlet
SSL/TLS 配置
Tomcat 的 JDBC 連接池
第一個(gè)應(yīng)用
簡介
Realm 配置

基于 APR 的原生庫

簡介

Tomcat 可以使用 Apache Portable Runtime(APR) 來增強(qiáng)可擴(kuò)展性與性能,并能更好地與原生服務(wù)器技術(shù)相集成。APR 是一種具有高度可移植性的類庫,是 Apache HTTP Server 2.x 的核心。APR 具有許多用途,包括訪問高級 IO 功能(比如 sendfile、epoll 和 OpenSSL)、系統(tǒng)級功能(隨機(jī)數(shù)生成、系統(tǒng)狀態(tài),等等)以及原生進(jìn)程處理(共享內(nèi)存、NT 管道、UNIX 套接字)。

這些特性能讓 Tomcat 成為一種通用的 Web 服務(wù)器,更使其更好地與原生的 Web 技術(shù)相集成。從整體上來說,這使得 Java 越來越有望成為一個(gè)成熟的 Web 服務(wù)器平臺,而不單純是一種僅僅著重研究后端的技術(shù)。

安裝

APR 支持需要安裝三個(gè)關(guān)鍵的原生組件:

  • APR 庫
  • Tomcat 所用的 》JNI 包裝器
  • OpenSSL 庫

Windows

Windows 安裝文件從這里下載 32 位或 AMD 64 位,里面是包含 OpenSSL 和 APR 的集合文件。

Linux

多數(shù) Linux 分發(fā)版都會自帶 APR 與 OpenSSL 包。JNI 包裝器(litcnative)然后被編譯。它依賴 APR、OpenSSL 與 Java 頭。

需要:

  • APR 1.2+ 開發(fā)頭(libarp-1 dev package)
  • OpenSSL 》》》
  • Java compatible JDK 1.4+》》
  • GNU 開發(fā)環(huán)境(gcc,make)

APR 組件

當(dāng)所有的庫都正確安裝好且適用于 Java(如果加載失敗,就會顯示相關(guān)的庫路徑),Tomcat 連接器就會自動使用 APR。這里,連接器的配置跟通常的配置沒什么不同,但會用一些特別的屬性來配置 APR 組件。對于大多數(shù)用例來說,這些屬性的默認(rèn)值都已經(jīng)非常適用了,根本不需要再加以微調(diào)。

當(dāng)啟用 APR 時(shí),Tomcat 同樣也啟用了下面這些功能:

  • 默認(rèn)在所有平臺安全會話 ID 生成(Linux 之外的平臺需要隨機(jī)數(shù)生成使用配置好的熵)。
  • 關(guān)于Tomcat 進(jìn)程的內(nèi)存使用和 CPU 使用情況的 OS 級統(tǒng)計(jì),由status servlet所顯示。

配置 APR 生命周期偵聽器(APR Lifecycle Listener)

AprLifecycleListener

屬性 描述
SSLEngine 所要使用的 SSLEngine 名稱。off:不使用 SSL。on:使用 SSL,但沒有特定引擎。默認(rèn)值為 on。這將初始化原生的 SSL 引擎,然后使用 SSLEnabled 屬性在連接器中》》》。范例:
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
請?jiān)L問 OpenSSL 官方網(wǎng)站以詳細(xì)了解 SSL 硬件引擎與制造商的相關(guān)信息。

配置 APR 連接器

HTTP/HTTPS

關(guān)于 HTTP 配置的相關(guān)信息,可查閱 HTTP 連接器配置文檔
關(guān)于 HTTPS 配置的相關(guān)信息,可查閱 HTTPS 連接器配置文檔。

下面這個(gè)范例介紹了 SSL 連接器的聲明:

<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

關(guān)于 AJP 配置的相關(guān)信息,可查閱 AJP 連接器配置文檔。

上一篇:默認(rèn) Servlet下一篇:代理支持