apache httpd ProxyPass 与客户端证书性能

apache httpd ProxyPass 与客户端证书性能

这里我们有一个在 wildfly 9 上运行的 WebService。该 Web 服务仅可通过 ssl(https)使用,并且需要客户端证书。

如果我们改变 wildfly 配置,wildfly 将直接与客户端通信(意味着:wildfly 将处理 https 连接并检查客户端证书),在我们的测试用例中,一个客户端每秒可以发出 12 到 15 个请求(包括获取服务器答案)。

但是,如果我们在 wildfly 前面放置一个 apache httpd(CentOS6 上的 V2.2)代理(它将处理 https SSL 内容并检查客户端证书),那么客户端(在同一个测试用例中)每秒只能发出 2 到 5 个请求。

httpd 代理的配置是:

Listen 58443
NameVirtualHost *:58443

<VirtualHost *:58443>
  # server SSL settings
  SSLEngine on
  SSLProtocol all -SSLv2 -SSLv3
  SSLHonorCipherOrder On
  SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AES:RSA+3DES:!ADH:!AECDH:!MD5:!DSS
  #   Server Certificate:
  SSLCertificateFile /etc/letsencrypt/live/mydomain.de/cert.pem
  #   Server Private Key:
  SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.de/privkey.pem
  #   Server Certificate Chain:
  SSLCertificateChainFile /etc/letsencrypt/live/mydomain.de/chain.pem

  Header always set Strict-Transport-Security "max-age=315360000"

  # Client certifacte authentication
  #   Certificate Authority (CA):
  SSLCACertificateFile /etc/pki/webapp/cacert.pem
  SSLVerifyClient require
  SSLVerifyDepth  2

  # proxy stuff
  <Proxy *>
    AddDefaultCharset Off
    Order Allow,Deny
    Allow from all
  </Proxy>

  # proxy to wildfly instance
  ProxyPass /myappSrv http://localhost:58080/myappSrv min=3 smax=5 ttl=600 iobuffersize=163840
  # ProxyPass /myappSrv http://localhost:58080/myappSrv disablereuse=on
  #  ProxyPassReverse /myappSrv http://localhost:58080/myappSrv
</VirtualHost>

我们已经尝试了几个 httpd 配置值:

  • HostnameLookups被设定为off
  • 切换到“worker MPM ”并尝试几种设置(MinSpareServers,,,...)MaxSpareServersThreadsPerChild
  • AllowOverride被设定为none
  • 我们还尝试了 ProxyPass 参数(另请参阅注释掉 ProxyPass 行)

我们所做的一切都没有带来任何显著的改进。但我不敢相信当我们使用 httpd 代理时性能会如此糟糕。也不确定瓶颈是什么:httpd 代理?还是 httpd 的客户端证书检查?

答案1

我在 CentOS 7 上运行 Apache HTTPD 2.4 时遇到了与上述完全相同的问题。我的浏览器花了大约 1 秒钟等待索引页。切换到 nginx 后,加载时间降至 100 毫秒以下,应用程序突然变得非常快。

无论如何,如果出于某种原因您仍然需要使用 Apache HTTPD,则可以使用 nginx 作为它的反向代理。有很多指南。

相关内容