具有客户端证书性能的apache httpd ProxyPass

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

如果我们在我们的testing用例中更改wildfly将直接与客户进行通信的wildflyconfiguration(意味着wildfly将处理https连接,并且还将检查客户端证书),则一个客户端可以每秒发出12到15个请求(包括得到服务器的答案)。

但是,如果我们在wildfly前放置一个apache httpd(在CentOS6上的V2.2)代理(然后它将处理https SSL的东西,并将检查客户端证书),然后客户端可以(在同一个testing用例中)只有2到5每秒请求数。

httpd代理的configuration是:

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> 

我们已经使用了几个httpdconfiguration值:

  • HostnameLookups设置为off
  • 切换到“工人MPM”,并使用它的几个设置( MinSpareServersMaxSpareServersThreadsPerChild ,…)
  • AllowOverride被设置为none
  • 我们也玩弄了ProxyPass参数(另请参阅注释掉ProxyPass行)

我们所做的一切都没有带来任何显着的改善。 但我不能相信,当我们使用httpd代理的性能是如此糟糕。 也不知道什么是瓶子:httpd代理? 或者httpd的客户端证书检查?