Tomcat 与 APR 仍然说 aprConnector 是错误的

Tomcat with APR still says aprConnector is false

这是 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>

此连接器的目标是提高 HTTP2 和 APR 以及 HTTPS 的速度。

我们使用 OS 软件包 tomcat-native 安装了 tomcat native。

启动时的日志输出:

INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.16] using APR version [1.6.3].

INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].

INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]

一切看起来都很棒,除了 useAprConnector [false]

那么 APR 真的在做什么吗?

我在相关文档中找不到任何内容:

https://tomcat.apache.org/tomcat-8.0-doc/config/http.html#SSL_Support

https://tomcat.apache.org/tomcat-8.0-doc/apr.html

Tomcat 8.5 中的当前默认设置是使用带有 OpenSSL 作为加密引擎的 Java NIO 连接器。 libtcnative 仍然是必需的,它需要 libapr,但是 "APR Connector" 本身没有被使用。

这意味着 Tomcat 正在使用带有 OpenSSL 引擎的纯 Java 连接器进行加密。您可以获得 OpenSSL 速度的优势,而没有 APR 连接器本身的一些缺点。

IMO 这是您可用的最佳配置选项,因此您应该保留它,除非您有令人信服的理由明确使用 APR 连接器。

如果你真的想使用APR连接器,那么你需要设置useAprConnector attribute on your AprLifecycleListener to true