[英]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-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 初始 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.