繁体   English   中英

Tomcat 8.5 配置,带 APR 连接器和 HTTPS

[英]Tomcat 8.5 configuration with APR connecter and HTTPS

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

请注意,我为从此处下载的 windows 使用了 Tomcat8.5.47 本机二进制文件。

这是我在 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 连接器的一些详细信息,请特别参考protocol属性。

在此处输入图像描述

经过 Tomcat7 和 Tomcat8.5 的长时间比较,当我为 Tomcat 7 和 8.5 输入https://localhost:port/manager/status时,我发现http-apr-8443使用的是http-apr-8080 (用于 http) http-apr-8443 (对于 https,它提到了 http-apr 而不是 https-apr)和ajp-apr-8009 ,但是 Tomact8.5 使用http-nio-8080https-openssl-nio-8444ajp-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 初始 memory 池:1024MB

Tomcat 最大 memory 池:1024MB

Openssl 1.1.1c

谢谢你的帮助!

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

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

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

使用 OpenSSL 需要 APR/native 连接器。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM