You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by thuss2 <th...@greatschools.net> on 2006/06/21 19:49:38 UTC

mod_jk failover and preferring localhost

We have 10 web servers with Tomcat's running on them and a mod_jk
configuration to prefer the tomcat on localhost and only failover to another
machine if the local one fails. This worked fine under our older mod_jk,
however, we just upgraded to 1.2.15 and now it that the local_worker
properties are no longer supported, it's load balancing every request.

So I checked out the workers.properties options page:
http://tomcat.apache.org/connectors-doc/config/workers.html and noticed the
new distance option so that I can give localhost a distance of 0 and
everything else a greater distance so that the load balancer should always
prefer localhost. However, it seems to be ignoring the distance property
completely and load balancing every request. Can anyone suggest what I might
try to get it to always use the local tomcat for requests unless it fails:

worker.list=tomcat
worker.tomcat.type=lb
worker.tomcat.socket_timeout=195
worker.tomcat.balance_workers=localhost,latin1,latin2,...
worker.tomcat.sticky_session=False

worker.localhost.port=8009
worker.localhost.host=localhost
worker.localhost.type=ajp13
worker.localhost.lbfactor=1
worker.localhost.distance=0

worker.latin1.port=8009
worker.latin1.host=latin1
worker.latin1.type=ajp13
worker.latin1.lbfactor=1
worker.latin1.distance=1

worker.latin2.port=8009
worker.latin2.host=latin2
worker.latin2.type=ajp13
worker.latin2.lbfactor=1
worker.latin2.distance=1

Thanks,
Todd

--
View this message in context: http://www.nabble.com/mod_jk-failover-and-preferring-localhost-t1825380.html#a4979143
Sent from the Tomcat - User forum at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: mod_jk failover and preferring localhost

Posted by Rainer Jung <ra...@kippdata.de>.
daneturner schrieb:
> 
> Rainer Jung-3 wrote:
>> Short answer for your question:
>>
>> the two lines you tried to use as a distance configuration both have
>> typos:
>>
>>> workers.localhost.distance=10
>>> workers.localhost.distance=20
>> workers -> worker
>> localhost -> ritin (once)
>>
> 
> Ouch.  How stupid.
> 
> Thanks for the correction.  Problem solved.  Apologies for the sloppy post
> :-\

Accepted :)

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: mod_jk failover and preferring localhost

Posted by daneturner <da...@greatschools.net>.

Rainer Jung-3 wrote:
> 
> Short answer for your question:
> 
> the two lines you tried to use as a distance configuration both have
> typos:
> 
>> workers.localhost.distance=10
>> workers.localhost.distance=20
> 
> workers -> worker
> localhost -> ritin (once)
> 

Ouch.  How stupid.

Thanks for the correction.  Problem solved.  Apologies for the sloppy post
:-\

Dane
-- 
View this message in context: http://www.nabble.com/mod_jk-failover-and-preferring-localhost-tf1825380.html#a7751349
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: mod_jk failover and preferring localhost

Posted by Rainer Jung <ra...@kippdata.de>.
Short answer for your question:

the two lines you tried to use as a distance configuration both have typos:

> workers.localhost.distance=10
> workers.localhost.distance=20

workers -> worker
localhost -> ritin (once)

I just did a quick test with 1.2.20 (there should no be change wrt.
distance between 19 and 20) and it worked.

Regards,

Rainer

daneturner schrieb:
> I just tested with mod_jk 1.2.19 and it still seems as though the distance
> parameter is being ignored.  Output from the status/monitor.page shows
> mod_jk alternating between tomcats with different distance values in
> workers.properties.  
> 
> How can I troubleshoot this further?
> 
> Here's my workers.properties...
> 
> dane@nuked:/usr/local/etc/apache$ cat workers.properties
> workers.tomcat_home=/usr/local/tomcat5.5
> workers.java_home=/usr/local/jdk
> ps=/
> worker.list=tomcat
> 
> worker.tomcat.type=lb
> worker.tomcat.socket_timeout=195
> worker.tomcat.balance_workers=localhost,ritin
> worker.tomcat.sticky_session=False
> 
> worker.localhost.port=8009
> worker.localhost.socket_timeout=195
> worker.localhost.host=localhost
> worker.localhost.type=ajp13
> workers.localhost.distance=10
> worker.localhost.lbfactor=1
> 
> worker.ritin.port=8009
> worker.ritin.host=ritin
> worker.ritin.type=ajp13
> workers.localhost.distance=20
> worker.ritin.lbfactor=1
> 
> 
> And some version information...
> 
> dane@nuked:~$ grep mod_jk /var/log/apache/error_log |tail -1
> [Thu Dec  7 16:13:04 2006] [notice] Apache/1.3.37 (Unix) mod_perl/1.29
> mod_ssl/2.8.28 OpenSSL/0.9.7e-p1 mod_jk/1.2.19 configured -- resuming normal
> operations
> 
> 
> Dane
> 
> 
> Rainer Jung-3 wrote:
>> The new attribute distance will help you. It was first implemented for
>> version 1.2.16, which is in the process of being released (see my other
>> answer).
>>
>> Please test and let us know your results.
>>
>> thuss2 schrieb:
>>> We have 10 web servers with Tomcat's running on them and a mod_jk
>>> configuration to prefer the tomcat on localhost and only failover to
>>> another
>>> machine if the local one fails. This worked fine under our older mod_jk,
>>> however, we just upgraded to 1.2.15 and now it that the local_worker
>>> properties are no longer supported, it's load balancing every request.
>>>
>>> So I checked out the workers.properties options page:
>>> http://tomcat.apache.org/connectors-doc/config/workers.html and noticed
>>> the
>>> new distance option so that I can give localhost a distance of 0 and
>>> everything else a greater distance so that the load balancer should
>>> always
>>> prefer localhost. However, it seems to be ignoring the distance property
>>> completely and load balancing every request. Can anyone suggest what I
>>> might
>>> try to get it to always use the local tomcat for requests unless it
>>> fails:
>>>
>>> worker.list=tomcat
>>> worker.tomcat.type=lb
>>> worker.tomcat.socket_timeout=195
>>> worker.tomcat.balance_workers=localhost,latin1,latin2,...
>>> worker.tomcat.sticky_session=False
>>>
>>> worker.localhost.port=8009
>>> worker.localhost.host=localhost
>>> worker.localhost.type=ajp13
>>> worker.localhost.lbfactor=1
>>> worker.localhost.distance=0
>>>
>>> worker.latin1.port=8009
>>> worker.latin1.host=latin1
>>> worker.latin1.type=ajp13
>>> worker.latin1.lbfactor=1
>>> worker.latin1.distance=1
>>>
>>> worker.latin2.port=8009
>>> worker.latin2.host=latin2
>>> worker.latin2.type=ajp13
>>> worker.latin2.lbfactor=1
>>> worker.latin2.distance=1
>>>
>>> Thanks,
>>> Todd
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/mod_jk-failover-and-preferring-localhost-t1825380.html#a4979143
>>> Sent from the Tomcat - User forum at Nabble.com.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To start a new topic, e-mail: users@tomcat.apache.org
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>>
> 

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: mod_jk failover and preferring localhost

Posted by daneturner <da...@greatschools.net>.
I just tested with mod_jk 1.2.19 and it still seems as though the distance
parameter is being ignored.  Output from the status/monitor.page shows
mod_jk alternating between tomcats with different distance values in
workers.properties.  

How can I troubleshoot this further?

Here's my workers.properties...

dane@nuked:/usr/local/etc/apache$ cat workers.properties
workers.tomcat_home=/usr/local/tomcat5.5
workers.java_home=/usr/local/jdk
ps=/
worker.list=tomcat

worker.tomcat.type=lb
worker.tomcat.socket_timeout=195
worker.tomcat.balance_workers=localhost,ritin
worker.tomcat.sticky_session=False

worker.localhost.port=8009
worker.localhost.socket_timeout=195
worker.localhost.host=localhost
worker.localhost.type=ajp13
workers.localhost.distance=10
worker.localhost.lbfactor=1

worker.ritin.port=8009
worker.ritin.host=ritin
worker.ritin.type=ajp13
workers.localhost.distance=20
worker.ritin.lbfactor=1


And some version information...

dane@nuked:~$ grep mod_jk /var/log/apache/error_log |tail -1
[Thu Dec  7 16:13:04 2006] [notice] Apache/1.3.37 (Unix) mod_perl/1.29
mod_ssl/2.8.28 OpenSSL/0.9.7e-p1 mod_jk/1.2.19 configured -- resuming normal
operations


Dane


Rainer Jung-3 wrote:
> 
> The new attribute distance will help you. It was first implemented for
> version 1.2.16, which is in the process of being released (see my other
> answer).
> 
> Please test and let us know your results.
> 
> thuss2 schrieb:
>> We have 10 web servers with Tomcat's running on them and a mod_jk
>> configuration to prefer the tomcat on localhost and only failover to
>> another
>> machine if the local one fails. This worked fine under our older mod_jk,
>> however, we just upgraded to 1.2.15 and now it that the local_worker
>> properties are no longer supported, it's load balancing every request.
>> 
>> So I checked out the workers.properties options page:
>> http://tomcat.apache.org/connectors-doc/config/workers.html and noticed
>> the
>> new distance option so that I can give localhost a distance of 0 and
>> everything else a greater distance so that the load balancer should
>> always
>> prefer localhost. However, it seems to be ignoring the distance property
>> completely and load balancing every request. Can anyone suggest what I
>> might
>> try to get it to always use the local tomcat for requests unless it
>> fails:
>> 
>> worker.list=tomcat
>> worker.tomcat.type=lb
>> worker.tomcat.socket_timeout=195
>> worker.tomcat.balance_workers=localhost,latin1,latin2,...
>> worker.tomcat.sticky_session=False
>> 
>> worker.localhost.port=8009
>> worker.localhost.host=localhost
>> worker.localhost.type=ajp13
>> worker.localhost.lbfactor=1
>> worker.localhost.distance=0
>> 
>> worker.latin1.port=8009
>> worker.latin1.host=latin1
>> worker.latin1.type=ajp13
>> worker.latin1.lbfactor=1
>> worker.latin1.distance=1
>> 
>> worker.latin2.port=8009
>> worker.latin2.host=latin2
>> worker.latin2.type=ajp13
>> worker.latin2.lbfactor=1
>> worker.latin2.distance=1
>> 
>> Thanks,
>> Todd
>> 
>> --
>> View this message in context:
>> http://www.nabble.com/mod_jk-failover-and-preferring-localhost-t1825380.html#a4979143
>> Sent from the Tomcat - User forum at Nabble.com.
>> 
>> 
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/mod_jk-failover-and-preferring-localhost-tf1825380.html#a7750978
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: mod_jk failover and preferring localhost

Posted by Rainer Jung <ra...@kippdata.de>.
The new attribute distance will help you. It was first implemented for
version 1.2.16, which is in the process of being released (see my other
answer).

Please test and let us know your results.

thuss2 schrieb:
> We have 10 web servers with Tomcat's running on them and a mod_jk
> configuration to prefer the tomcat on localhost and only failover to another
> machine if the local one fails. This worked fine under our older mod_jk,
> however, we just upgraded to 1.2.15 and now it that the local_worker
> properties are no longer supported, it's load balancing every request.
> 
> So I checked out the workers.properties options page:
> http://tomcat.apache.org/connectors-doc/config/workers.html and noticed the
> new distance option so that I can give localhost a distance of 0 and
> everything else a greater distance so that the load balancer should always
> prefer localhost. However, it seems to be ignoring the distance property
> completely and load balancing every request. Can anyone suggest what I might
> try to get it to always use the local tomcat for requests unless it fails:
> 
> worker.list=tomcat
> worker.tomcat.type=lb
> worker.tomcat.socket_timeout=195
> worker.tomcat.balance_workers=localhost,latin1,latin2,...
> worker.tomcat.sticky_session=False
> 
> worker.localhost.port=8009
> worker.localhost.host=localhost
> worker.localhost.type=ajp13
> worker.localhost.lbfactor=1
> worker.localhost.distance=0
> 
> worker.latin1.port=8009
> worker.latin1.host=latin1
> worker.latin1.type=ajp13
> worker.latin1.lbfactor=1
> worker.latin1.distance=1
> 
> worker.latin2.port=8009
> worker.latin2.host=latin2
> worker.latin2.type=ajp13
> worker.latin2.lbfactor=1
> worker.latin2.distance=1
> 
> Thanks,
> Todd
> 
> --
> View this message in context: http://www.nabble.com/mod_jk-failover-and-preferring-localhost-t1825380.html#a4979143
> Sent from the Tomcat - User forum at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: mod_jk failover and preferring localhost

Posted by thuss2 <th...@greatschools.net>.
Filip, we're not using sessions so we don't need sessions affinity, but if we
did we'd use session replication rather than sticky sessions. The sticky
option does accept true/false according to the documentation
http://tomcat.apache.org/connectors-doc/config/workers.html . I think that's
all unrelated to the issue we're seeing though which is that mod_jk seems to
be completely ignoring the distance parameter.

-Todd
--
View this message in context: http://www.nabble.com/mod_jk-failover-and-preferring-localhost-t1825380.html#a4980476
Sent from the Tomcat - User forum at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: mod_jk failover and preferring localhost

Posted by thuss2 <th...@greatschools.net>.
That explains it, thanks. I've just set the lbfactor extremely high on the
localhost in the interim to get mod_jk to prefer it over remote tomcats.

-Todd
--
View this message in context: http://www.nabble.com/mod_jk-failover-and-preferring-localhost-t1825380.html#a4980806
Sent from the Tomcat - User forum at Nabble.com.


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: mod_jk failover and preferring localhost

Posted by Filip Hanik - Dev Lists <de...@hanik.com>.
Mladen Turk wrote:
> Filip Hanik - Dev Lists wrote:
>> you've setup sticky_sessions to be false, (btw, I thought that only 
>> took 0/1 values) so how can you expect session affinity from that?
>>
>
> Recent mod_jk versions can take True/False instead 1/0 just
> as an convenience method.
instead or "as well", the latter right?

Filip
>
>


-- 


Filip Hanik

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: mod_jk failover and preferring localhost

Posted by Mladen Turk <ml...@jboss.com>.
Filip Hanik - Dev Lists wrote:
> you've setup sticky_sessions to be false, (btw, I thought that only took 
> 0/1 values) so how can you expect session affinity from that?
>

Recent mod_jk versions can take True/False instead 1/0 just
as an convenience method.

Also the 'distance' param will be supported with
the next 1.2.16 release.


Regards,
Mladen.

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: mod_jk failover and preferring localhost

Posted by Filip Hanik - Dev Lists <de...@hanik.com>.
you've setup sticky_sessions to be false, (btw, I thought that only took 
0/1 values) so how can you expect session affinity from that?

Filip


thuss2 wrote:
> We have 10 web servers with Tomcat's running on them and a mod_jk
> configuration to prefer the tomcat on localhost and only failover to another
> machine if the local one fails. This worked fine under our older mod_jk,
> however, we just upgraded to 1.2.15 and now it that the local_worker
> properties are no longer supported, it's load balancing every request.
>
> So I checked out the workers.properties options page:
> http://tomcat.apache.org/connectors-doc/config/workers.html and noticed the
> new distance option so that I can give localhost a distance of 0 and
> everything else a greater distance so that the load balancer should always
> prefer localhost. However, it seems to be ignoring the distance property
> completely and load balancing every request. Can anyone suggest what I might
> try to get it to always use the local tomcat for requests unless it fails:
>
> worker.list=tomcat
> worker.tomcat.type=lb
> worker.tomcat.socket_timeout=195
> worker.tomcat.balance_workers=localhost,latin1,latin2,...
> worker.tomcat.sticky_session=False
>
> worker.localhost.port=8009
> worker.localhost.host=localhost
> worker.localhost.type=ajp13
> worker.localhost.lbfactor=1
> worker.localhost.distance=0
>
> worker.latin1.port=8009
> worker.latin1.host=latin1
> worker.latin1.type=ajp13
> worker.latin1.lbfactor=1
> worker.latin1.distance=1
>
> worker.latin2.port=8009
> worker.latin2.host=latin2
> worker.latin2.type=ajp13
> worker.latin2.lbfactor=1
> worker.latin2.distance=1
>
> Thanks,
> Todd
>
> --
> View this message in context: http://www.nabble.com/mod_jk-failover-and-preferring-localhost-t1825380.html#a4979143
> Sent from the Tomcat - User forum at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>   


-- 


Filip Hanik

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org