Tomcat与APR一起仍然显示aprConnector为false

5

这是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来提高速度。
我们使用操作系统包tomcat-native安装了tomcat本地程序。
启动时的日志输出:
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,但正在阅读8.0的文档... - Christopher Schultz
1个回答

8
Tomcat 8.5目前的默认设置是使用Java NIO连接器,OpenSSL作为加密引擎。libtcnative仍然需要libapr,但“APR连接器”本身并未被使用。这意味着Tomcat正在使用纯Java连接器和OpenSSL引擎进行加密。您可以获得OpenSSL速度的好处,而不会遇到APR连接器本身的一些缺点。我认为这是您可用的最佳配置选项,因此,除非您有充分的理由明确使用APR连接器,否则应该保持原样。如果您真的想使用APR连接器,则需要将AprLifecycleListener上的useAprConnector属性设置为true

文档应该包含所有内容,但我对Tomcat有很长的历史。如果您找不到特定的内容,请在用户邮件列表中发布投诉,有人会尝试进行更正。 - Christopher Schultz
在高流量的生产环境中,我们不应该使用useAprConnector=true吗? - dv3
2
@dv3 NIO和NIO2连接器在APR之上增加了一种非阻塞的情况。非阻塞I/O在所有环境中都能更好地扩展,并在高流量生产环境中提供更好的服务。未来版本可能会讨论放弃APR连接器,因为APR的性能优势主要是由于OpenSSL引擎用于TLS。现在通过NIO连接器可用,因此APR连接器不再具有可感知的优势。 - Christopher Schultz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接