Load balancer and RT


For availability more than scalability, we would like to run two
instances of RT (different hardware). Are there some issues to look

Right now we have a simple Apache based load balancer but we are
getting user session mix up.

Any experience implementing such configuration?



If you are storing the sessions data in the database you should n’t have any problems.
We 've been running our RT on 2 boxes behind LVS for the past few years without any major issues.
The occasional keep alive hiccups which tend to be fixed pretty quickly without any major impact.



Thanks for your answer. Could you please tell me more about your
proxy settings?

We have a virtual host definition like the following. Yesterday we
started adding the ProxyPreserveHost, ProxyVia,
ProxyPassReverseCookieDomain while chasing the session mix up issues.
It is still happening although very rarely. And it is hard to
reproduce on demand… This virtual host points to two RT instances.

RewriteEngine on
RewriteRule ^/(.*) - [P,QSA]

ProxyPreserveHost ON
ProxyVia Full
KeepAlive On
ProxyPassReverseCookieDomain mydomain.com

<Proxy balancer://proxy-balancer>
   BalancerMember    http://xxx.xxx.xxx.xx1/rt_demo
   BalancerMember    http://xxx.xxx.xxx.xx2/rt_demo
ProxyPass      /rt_demo  balancer://proxy-balancer

And on each RT instance we have the ‘classic’ setup:

Alias /rt_demo "/opt/rt3/share/html"

PerlModule Apache2::compat
PerlModule Apache::DBI
PerlRequire /opt/rt3/bin/webmux.pl

AddOutputFilterByType DEFLATE application/x-javascript text/css text/html

<Location /rt/NoAuth>
 Order allow,deny
 Allow from all
 Satisfy any

<Location /rt/REST/1.0/NoAuth>
Order allow,deny
Allow from all
Satisfy any

<Directory “/opt/rt3/share/html”>
AllowOverride All
Options ExecCGI FollowSymLinks
AddDefaultCharset UTF-8
SetHandler perl-script
PerlHandler RT::Mason



We don’t use proxy , we use linux virtual servers and keepalived to balance the traffic into 2 RT web servers.
I am sorry I have no real experience with using Proxy so cannot help you.
In our case keepalived takes care of maintaining session state, when ever we tested a failure of the web servers, the users RT session were not interrupted with the exception of little glitch when the network adjusted itself.

Our each RT instance is a , the rest of the RT apache configuration is similar to yours.



Thanks for the info.

May I ask you what you use for the backend? I am assuming that your 2
RT web servers are connected to the same MySQL? What redundancy
architecture have you adopted?

Thanks again.