Hi,
We are having an issue with Tomcat application accessing through proxy and details are below. Can you please check and share your feedback.
Issue:
We have an application(tomcat) accessed through proxy as below. Also, we have MaxRequestsPerChild setting as 100
Whenever MaxRequestsPerChild reached its limit, a new process is started but the application become unresponsive. It seems that new process doesn’t service any requests
We have to restart httpd to recover that
Log:
- Access.log doesn’t show any requests for new child
- Error_log shows that
a) workers are initiated for new process but it didn’t service any requests
b)
c) processing has stuck for a minute due to some reason
[Fri Aug 08 16:09:17 2014] [debug] ssl_engine_kernel.c(2118): [client 127.0.0.1] Certificate Verification, depth 0 [subject: /C=y/ST=y/L=y/O=y/OU=y/CN=y, issuer: /C=y/ST=y/L=y/O=y/OU=y/CN=y, serial: xyz]
[Fri Aug 08 16:10:12 2014] [info] [client 10.150.90.25] Connection to child 6 established (server *:<port number from client>)
d) SSL handshake has started but didn’t complete for 4 connections related to new process. There are no errors related to ssl
$ grep -i handshake errorlog.2014-08-08-07_06_44 | grep -c start
707
$ grep -i handshake errorlog.2014-08-08-07_06_44 | grep -c done
703
$
Apache version:
2.2.15
Proxy setting:
SSLProxyEngine On
SSLProxyCipherSuite ALL
SSLProxyMachineCertificateFile /var/ssl/proxy.pem
proxyPass /app1 https://localhost:<port number>/app1 (Tomcat)
Worker configuration:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule worker.c>
StartServers 1
MaxClients 25
MinSpareThreads 12
MaxSpareThreads 25
ThreadsPerChild 25
ServerLimit 1
MaxRequestsPerChild 100
MaxMemFree 50
</IfModule>
Thanks & Regards,
Krishna