On 07.08.2016 11:08, Jayaram Ponnusamy wrote:
Hi,
We are using Tomcat 7.0.42.0, AJP/1.3 with Apache 2.2.21.
Connecting Apache to Tomcat as VirtualHost, The Problem is Apache and
Tomcat losing its connection every 20-30 Minutes. Either We have to hit the
WebServer URL multiple times or Reboot Apache & Tomcat to resolve the issue
for short-time.
Also accessing WebServer URL is very very slow than tomcat URL (Mostly it
takes 30-45seconds to load a Page).

I have added tomcat/Apache configurations below, Kindly please help me to
resolve this issue.


Tomcat (Server.xml):
<Connector port="9090"
protocol="HTTP/1.1"
  connectionTimeout="600000"
  redirectPort="8443"
  URIEncoding="UTF-8" emptySessionPath="true"/>

<Connector port="9009" protocol="AJP/1.3" redirectPort="8443"
URIEncoding="UTF-8" connectionTimeout="600000"/>  <------ (*)

Apache (Workers.properties):
worker.list=prod_live_svr
worker.prod_live_svr.type=ajp13

worker.prod_live_svr.host=10.100.0.31
worker.prod_live_svr.port=9009
worker.prod_live_svr.lbfactor=50
worker.prod_live_svr.socket_keepalive=1

worker.prod_live_svr.connection_pool_size=100
worker.prod_live_svr.connection_pool_minsize=50
worker.prod_live_svr.connection_pool_timeout=500


VirtualHost.conf:
<VirtualHost *:80>

ServerName 10.100.0.31


ErrorLog logs/live/http_error.log
RewriteLog logs/live/http_rewrite.log

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^10\.100\.0\.31$
RewriteRule ^/+$ /sites/  [R,L]

<IfModule rewrite_module>
Options +FollowSymlinks
RewriteEngine On

RewriteOptions Inherit
RewriteLog logs/rewrite.log

</IfModule>
JkMount   /*        prod_live_svr

JkOptions +ForwardURICompatUnparsed

</VirtualHost>



1) Question : are Apache httpd and Tomcat on the same machine ?

And if yes, why do you not set

worker.prod_live_svr.host=127.0.0.1

2) why : connectionTimeout="600000"  (*)
That is 5 minutes.
By default, "keepAliveTimeout" is also that same value.
It means that after a request is processed (and finished) on one instance of a Connector, this Connector will remain "stuck" on the same connection for another 5 minutes, before it gives up and closes it. That is kind of wasteful.

3) Why this : worker.prod_live_svr.socket_keepalive=1
Do you have a firewall between Apache httpd and Tomcat ?

4) Why these ?
worker.prod_live_svr.connection_pool_size=100
worker.prod_live_svr.connection_pool_minsize=50
worker.prod_live_svr.connection_pool_timeout=500

See : http://tomcat.apache.org/connectors-doc/reference/workers.html
--> connection_pool_size
--> connection_pool_minsize
--> connection_pool_timeout  (see also (*) above)

In general (and particularly since you do not seem to be an expert in this kind of configuration), you should not set parameters when you do not understand exactly what they are doing. The default configurations of Apache httpd, Tomcat and AJP are set by experts (who know what they are doing), to values which fit a wide range of realistic use cases.

I would suggest to rewrite your configuration as follows :

I) Tomcat server.xml :

<Connector port="9009" protocol="AJP/1.3" redirectPort="8443"
 URIEncoding="UTF-8">

II) Apache httpd, workers.properties :

worker.list=prod_live_svr

worker.prod_live_svr.type=ajp13
worker.prod_live_svr.host=127.0.0.1
worker.prod_live_svr.port=9009

-----------------

That's it, no other parameters.

The Apache-side mod_jk connector module will by default and reasonably set the connection pool size, keepalive and timeout values etc.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to