Re: removeSelf doesn't seem to work

"Theo E. Schlossnagle" <[email protected]> Thu, 26 Jun 2003 13:33:20 -0400
Newsgroups gmane.comp.apache.mod-backhand.general
Organization Center for Networking and Distributed Systems
Message-ID <[email protected]>
[email protected] wrote:
> 
> I'm running a mod_backhand server to redirect connections to 2
> mailservers.  It is supposed to removeSelf and does until on of the
> backend servers goes down.  Immediately it tries to serve pages from
> itself.  Has anyone seen this problem before?

If mod_bakchand has trouble connecting (to proxy) to both servers, it could 
fail in this way (it will tr to service the page locally).  However, I see in 
your configuration you are using HTTPRedirectToName.  This causes mod_bakchand 
to issue 302's instead of proxying the requests back -- so, it will never fail 
in this fashion under your configuration as it doesn't attempt to make 
connections for proxying.

> My mod_backhand settings in httpd.conf on the mod_backhand box are:
> 
> 
> <IfModule mod_backhand.c>
>     UnixSocketDir /usr/local/apache/backhand
>     MulticastStats 192.168.0.255:4445,1
>     AcceptStats 192.168.0.0/24
> </IfModule>
> 
> 
> <Directory "/usr/local/apache/www">
>     Options Indexes FollowSymLinks MultiViews
>     Order allow,deny
>     Allow from all
>     Backhand removeSelf
>     Backhand byAge 6
>     Backhand byRandom
>     Backhand byLogWindow
>     Backhand byLoad
>     Backhand HTTPRedirectToName
> </Directory>

You have two backend boxes.  Don't use byRandom/byLogWindow.  With two servers 
it makes byLoad do nothing as their will only one of them left by the time 
byLoad is processed.

Try:
Backhand byAge 6
Backhand removeSelf
Backhand byLoad
Backhand HTTPRedirectToName

> 
> The mail servers have this in their apache config:
> 
> <IfModule mod_backhand.c>
>     UnixSocketDir /usr/local/apache/backhand
>     MulticastStats 192.168.0.XXX:4445,1

192.168.0.XXX is needs to be a broadcast address... So, XXX should be 255 on 
all your machines.  Also, you don't need the trailing ,1 as that isn't a 
multicast address (it is a normal broadcast address)

>     AcceptStats 192.168.0.0/24
> </IfModule>
> 
> 
> Where XXX is the ip of the machine running as the mod_backhand server.


-- 
Theo Schlossnagle
Principal Consultant
OmniTI Computer Consulting, Inc. -- http://www.omniti.com/
Phone:  +1 410 872 4910 x201     Fax:  +1 410 872 4911
1024D/82844984/95FD 30F1 489E 4613 F22E  491A 7E88 364C 8284 4984
2047R/33131B65/71 F7 95 64 49 76 5D BA  3D 90 B9 9F BE 27 24 E7