tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thiago Locatelli da Silva <thiago.si...@digitro.com.br>
Subject Re: Tomcat load balancing question x problem
Date Mon, 30 Aug 2010 11:25:48 GMT
Thats the way my mod_proxy conf is right now

<Proxy balancer://cluster>
    BalancerMember http://servera:8080/agent/ route=worker0 keepalive=On 
loadfactor=1
    BalancerMember http://serverb:8080/agent/ route=worker1 keepalive=On 
loadfactor=1
    ProxySet lbmethod=byrequests maxattempts=3 
stickysession=JSESSIONID|jsessionid
</Proxy>

<Location /agent/>
    ProxyPass balancer://cluster/ stickysession=JSESSIONID
    ProxyPassReverse http://servera:8080/agent/
    ProxyPassReverse http://serverb:8080/agent/
</Location>

The problem is that when I use my laptop as load balancer it works fine, 
even the comet part of the application works all right. In this scenario 
I have my laptop balancing the load among servera and serverb. However, 
when I use servera as the load balancer, the comet part doesnt seem to 
be working as I dont get any response from the server, but the load is 
being balanced properly.



Rainer Jung escreveu:
> On 27.08.2010 19:22, Thiago Locatelli da Silva wrote:
>> Hi Rainer,
>>
>> I followed your suggestions and it seems to be working, the load
>> balacing, now i need to look into why my application, created with gwt +
>> comet is not working. It seems that comet stopped working.
>
> Any information about what the solution was? Upgrading Apache, using 
> the backend server URLs in ProxyPassReverse, something else?
>
> Regards,
>
> Rainer
>
>> Rainer Jung escreveu:
>>> On 27.08.2010 14:17, Thiago Locatelli da Silva wrote:
>>>> Hello list! :)
>>>>
>>>> Here at work I was asked to give a try on load balancing two tomcat
>>>> servers running tomcat 6.0.29. The problem is that I was given only 
>>>> two
>>>> servers to do this, what gave me only one option: run the apache in 
>>>> one
>>>> of these servers. So I decided to put the apache httpd server which is
>>>> going to balance the load among the two tomcat server in the Server A
>>>> (suppousing I have server A and B running linux). My application which
>>>> needs to be balanced has "/agent" context.
>>>>
>>>> Everytime I access the URL http://servera/agent my request is redirect
>>>> either to http://servera:8080/agent or http://serverb:8080/agent. 
>>>> To my
>>>> understanding, with load balancing, my url would remain
>>>> http://servera/agent and the redirect would take place behing the 
>>>> scene
>>>> and I would never see any redirect to tomcat connector port (8080). By
>>>> the way, i am running the load balancing with mod_proxy in the apache
>>>> server and my configuration is as follow:
>>>>
>>>> =============================================================
>>>>
>>>> ProxyPass /balancer-manager !
>>>> ProxyPass /status !
>>>> ProxyStatus On
>>>> ProxyRequests Off
>>>>
>>>> <Location /balancer-manager>
>>>> SetHandler balancer-manager
>>>> Order Deny,Allow
>>>> Deny from all
>>>> Allow from localhost </Location>
>>>>
>>>> <Location /status>
>>>> SetHandler server-status
>>>> Order Deny,Allow
>>>> Deny from all
>>>> Allow from all
>>>> </Location>
>>>>
>>>> <Proxy *>
>>>> Order deny,allow
>>>> Allow from all
>>>> </Proxy>
>>>>
>>>> <Proxy balancer://cluster>
>>>> BalancerMember http://servera:8080/agent/ route=worker0 keepalive=On
>>>> loadfactor=1
>>>> BalancerMember http://serverb:8080/agent/ route=worker1 keepalive=On
>>>> loadfactor=1
>>>> ProxySet lbmethod=byrequests maxattempts=3
>>>> stickysession=JSESSIONID|jsessionid
>>>> </Proxy>
>>>>
>>>> <Location /agent>
>>>> ProxyPass balancer://cluster/ stickysession=JSESSIONID
>>>> ProxyPassReverse balancer://cluster/
>>>> </Location>
>>>>
>>>> =============================================================
>>>>
>>>> Not happy with this scenario, i decided to install the apache httpd
>>>> server in my laptop and made it as my load balancer instead of using
>>>> servera to load balance. For my surprise, it worked out of the box 
>>>> with
>>>> no extra configuration other than the one set up in my servera. I 
>>>> see no
>>>> redirects to 8080 tomcat's port, due to my overall tests i could see
>>>> only my desired url: http//localhost/agent (since i was running my 
>>>> tests
>>>> with apache installed locally).
>>>>
>>>> So my question is: does it make sense to have the load balancer in the
>>>> same server as one of the balanced server/application? Does mod_proxy
>>>> support this?
>>>>
>>>> Many thanks for all the attention
>>>
>>> The wrong redirect URLs should have been rewritten by
>>> ProxyPassReverse. Note that using the balancer URL in ProxyPassReverse
>>> only works starting with Apache 2.2.12. Before you had to give one
>>> ProxyPassReverse statement for each backend URL configured as part of
>>> the balancer, e.g.
>>>
>>> ProxyPassReverse /agent http://servera:8080/agent
>>> ProxyPassReverse /agent http://serverb:8080/agent
>>>
>>> It is simply a rule to rewrite the Location header contained in any
>>> 30x response, i.e. replacing the string to the right with the string
>>> to the left (if it prefixes the Location URL).
>>>
>>> I suggest you
>>>
>>> - make sure you have a recent Apache (2.2.16 is the latest 2.2.x)
>>>
>>> - inspect the exact redirect response using a browser plugin or
>>> network sniffing, especially check the contents of the Location header
>>>
>>> - try using the split ProxyPassReverse pr backend configuration
>>>
>>> Regards,
>>>
>>> Rainer
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

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


Mime
View raw message