【问题标题】:Tomcat 8.5 configuration with APR connecter and HTTPS带有 APR 连接器和 HTTPS 的 Tomcat 8.5 配置
【发布时间】:2020-03-09 02:25:35
【问题描述】:

出于安全原因,我们应该将我们的应用服务器从 Tomcat7 升级到 Tomcat8.5(Tomcat 用作 Apache HTTPD 2.4 前的应用服务器,即 web服务器,它们是使用AJP with mod_jk 集成的),在成功配置后,应用程序能够成功运行,但我注意到 CPU 的使用率高达 100%。

请注意,我使用 Tomcat8.5.47 native 二进制文件用于从 here 下载的 Windows。

这是我在 server.xml 中启用 https 的配置

<Connector port="8444" maxHttpHeaderSize="8192"
             maxThreads="150"
             enableLookups="false" disableUploadTimeout="true"
             acceptCount="100" scheme="https" secure="true"
             SSLEnabled="true"
             SSLCertificateFile="conf/certs/mycacert.pem"
             SSLCertificateKeyFile="conf/certs/cakey_enc.pem" />

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8444" />

这里有一些关于AJP connector的细节,请特别参考protocol属性。

经过 Tomcat7 和 Tomcat8.5 的长时间比较,当我为 Tomcat 7 和 8.5 输入 https://localhost:port/manager/status 时,我发现 Tomcat7 使用的是http-apr-8080(对于 http),http-apr-8443(对于 https,有人提到http-apr 而不是 https-apr) 和 ajp-apr-8009,但 Tomact8.5 使用 http-nio-8080、https-openssl-nio-8444 和 ajp-nio-8009

所以 Tomcat7 在所有连接器中使用APR,但 Tomcat8.5 使用 NIO。

附加信息:

我们正在运行 Windows Server 2008 R2 64 位,具有 4GB RAM(这是一个测试服务器)。

4 月 1.7 日

AJP 1.3

JVM 1.8.0_231-b11

Tomcat 初始内存池:1024MB

Tomcat 最大内存池:1024MB

Openssl 1.1.1c

感谢您的帮助!

【问题讨论】:

  • 您是否考虑过使用mod_proxy_ajp 将Apache 与Tomcat 连接起来?
  • @f_puras 不,我没有,因为旧配置使用 mod_jk 并且工作正常,这会改变 Tomcat8.5 吗?

标签: openssl tomcat7 apr tomcat8.5


【解决方案1】:

当存在 APR/本机库时,8.5.x 中的默认值已更改。

在 Tomcat 7 中,它是 APR 连接器,包括用于 TLS 的 OpenSSL。

在 Tomcat 8.5 中,它是 NIO 连接器,包括用于 TLS 的 OpenSSL。

使用 OpenSSL 需要 APR/本机连接器。

如果你真的想要 APR/native(我个人会坚持使用默认值),最简单的方法是在你的 HTTP Connector 元素中使用以下内容 protocol="org.apache.coyote.http11.Http11AprProtocol" 和 protocol="org.apache.coyote.ajp.AjpAprProtocol" 用于您的 AJP 连接器。

【讨论】:

  • 关于 Tomcat 7 和 8.5 中默认连接器的信息很有用,但这并不能解释为什么当我将 Tomcat 设置为使用 APR/本机连接器时,我的 CPU 使用率特别高,我'我试图收集线程转储以查看问题所在。你能给我一个链接,上面写着“在 Tomcat 8.5 中,它是 NIO 连接器,包括用于 TLS 的 OpenSSL。” ?这里tomcat.10.x6.nabble.com/… 的讨论与我的情况非常相似,但没有提供解决方案。
【解决方案2】:

这个帖子High CPU load with the JSSE client poller on Tomcat 8.5给了我尝试Tomcat8.5.5的想法,它解决了使用Apr Connector时自发的高CPU使用率问题

【讨论】:

    猜你喜欢
    • 2020-09-04
    • 2011-10-18
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多