tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From André Warnier ...@ice-sa.com>
Subject Re: Tomcat(5.5) Clustering and Load Balancing.
Date Mon, 03 Jan 2011 11:04:45 GMT
Harsimranjit singh Kler wrote:
> Hi
> 
> Here is details:
> 
> *Tomcat version*: 5.5.27
> *OS*:Window XP
> *JDK*:1.6
> *Environment Trying to Create* :Load balancing and Clustering on single
> Machine using tomcat instances only(balancer Feature) .
> 
> *What i have Achieved*:i am running 4 instances of tomcat on ports
> 8080,9080,10080,11080.So port 8080 tomcat work as balancer and other works
> as cluster.(Using Multicasting IP and Port {check server.xml} it works
> fine).
> attached find server.xml,web.xml,rule.xml of balancer tomcat(8080).
> 
> So using  balancer feature in tomcat and rule.xml and some customized
> classes requests are successfully redirected to one of cluster ie 9080,10080
> or 11080 instance.
> 
> *Issue*:when request redirected from tomcat balancer(on 8080 port) to any
> cluster (tomcat instance on 9080,10080 or 11080 port) URL in address bar
> also changed. i dont want to display cluster URL.So how i can achive this?.
> 
> i think "org.apache.webapp.balancer.BalancerFilter"  class internally use
> SendRedirect() method .
> 
> I tried with requestDispatcher..Forward() but it accept only realtive
> address.
> 
> 

I believe that David already gave you the basic answer.

>>>
>>>
>> From what I read in the message, it appears the balancer is sending the
>> browser a redirect (one of the 30x responses) which in turn changes the
>> url in the browser's address bar.  The OP (if I understand correctly)
>> would like the url in the browser's address bar not to change at all (no
>> 30x redirect response).  The only way I can imagine that working is if
>> the balancer acts as a reverse proxy, sending each request back to a
>> different back-end worker.

I don't think that what you want to achieve can be done (yet) with Tomcat alone.

As a bit of an outsider's answer, I'll add this : from browsing the Tomcat cluster on-line

documentation, it looks to me as a very impresive piece of work, but also as quite a 
complex setup.

If your main purpose is to balance the load between a number of back-end Tomcat engines, I

believe that using an Apache httpd front-end with either of the mod_proxy_ajp or the 
mod_jk connector, would be much easier to set up, and would provide exactly what you want

: a single hostname:port for the clients, and load-balancing, and fail-over capabilities.

It does that, because it would act like David indicates above, as a "reverse proxy".  In 
this kind of configuration, the clients (browsers e.g.) always talk to the same front-end

server, and receive the responses from that front-end server.  The front-end server in 
turn passes the requests to one of several back-end servers, and gets the response from 
them, which they then send back to the client.
The clients always talk to the front-end server, and see only that one; they never even 
know that there are back-end servers, and never see the hostname:port of these back-end 
servers.

Maybe the Tomcat cluster configuration does additional things which the front-end balancer

setup cannot do.  But that is an area that I really don't know, and maybe someone else can

comment on that.


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


Mime
View raw message