com*_*day 5 java https tomcat apr
这是 server.xml 中的连接器:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150"
SSLEnabled="true"
scheme="https"
compression="off"
connectionTimeout="1190"
address="0.0.0.0"
>
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig>
<Certificate certificateKeyFile="/etc/ssl/certs/private.key"
certificateFile="/etc/ssl/certs/public.pem"
/>
</SSLHostConfig>
</Connector>
Run Code Online (Sandbox Code Playgroud)
此连接器的目标是通过 HTTP2 和 APR 以及 HTTPS 提高速度。
我们使用操作系统包 tomcat-native 安装了 tomcat native。
启动时的日志输出:
信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 使用 APR 版本 [1.6.3] 加载基于 APR 的 Apache Tomcat 本机库 [1.2.16]。
信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR 功能:IPv6 [true]、sendfile [true]、接受过滤器 [false]、随机 [true]。
INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL 配置:useAprConnector [false],useOpenSSL [true]
一切看起来都很棒,除了useAprConnector [false]
那么APR真的在做什么吗?
我在相关文档中找不到任何内容:
https://tomcat.apache.org/tomcat-8.0-doc/config/http.html#SSL_Support
Tomcat 8.5 中的当前默认设置是使用 Java NIO 连接器和 OpenSSL 作为加密引擎。libtcnative仍然需要,这需要libapr,但没有使用“APR 连接器”本身。
这意味着 Tomcat 使用带有 OpenSSL 引擎的纯 Java 连接器进行加密。您可以获得 OpenSSL 速度的优势,而没有 APR 连接器本身的一些缺点。
IMO 这是您可用的最佳配置选项,因此您应该保留它,除非您有明确的理由明确使用 APR 连接器。
如果你真的想使用 APR 连接器,那么你需要将你的useAprConnector属性AprLifecycleListenertrue设置为.