[Zope] Advice needed: load balancing wih ZEO and Apache on So laris.

sean.upton@uniontrib.com sean.upton@uniontrib.com
Sat, 25 Aug 2001 12:55:19 -0700


Sounds like you need something to distribute and/or balance the load; 3
suggestions:

1 - HTTP Proxy Load Distribution - Squid does this, round-robin, put squid
in front of your ZEO farm (this is what I do).  I don't think that mod_proxy
is capable of doing this.
2 - Layer 4 switch (Cisco LocalDirector, Intel Netstructure, etc) - not
cheap, but offers some features like a choice between true balancing, outage
detection, and funky routing techniques like out-of-path return for quicker
network performance.
3 - LVS - Linux Virtual Server Project, attempts to do in software what # 2
does.

Personally, I'm in favor of squid because it is cheap and easy, if all your
machines are of equal weight in performance terms.  My company uses squid in
front of multiple ZEO clients, bypassing Apache altogether for access to
Zope; we use pyredir as a redirector to rewrite URLs like you would with
mod_rewrite; Squid is very nice as a Zope virtual host front-end, and
provides ACLs for security purposes, like blocking out the ZMI from public
access.  Getting load balancing working in squid is simply a matter of
compiling it with a flag to specify you want external DNS resolution support
and using squid's built-in name resolving program dnsserver, which will look
at /etc/hosts and round-robin among multiple IPs that have the same
hostname.  One caveat: if you put Squid (or any high-volume TCP app) on
Solaris, make sure to tune your TCP connection buffers, so Solaris doesn't
choke; this is one (albeit trivial) reason we use Linux 2.4 for our proxies
instead of Solaris.

Since squid round-robin's it doesn't deal with node reliability problems,
which means you will have to rely upon another HA mechanism on the ZEO
client nodes themselves, like heartbeat from the Linux-HA project, which at
some point will ported to Solaris, from what I hear.

If you have a decent budget, but not a lot of time, look at a L4 switch (we
use for another application, and like, the Intel Netstrcuture 7140);
otherwise, if you have budget constraints consider LVS or Squid, with Squid
being the likely easiest path in terms of setup time.

Sean

-----Original Message-----
From: Tony McDonald [mailto:tony.mcdonald@ncl.ac.uk]
Sent: Saturday, August 25, 2001 9:14 AM
To: Zope
Subject: [Zope] Advice needed: load balancing wih ZEO and Apache on
Solaris.


Hi,
I've followed the instructions at
<http://www.zope.org/Members/dshaw/AdvancedSiteSetup> to set up a ZEO server
and client (on the same machine). These instructions are very clear and I'd
recommend them to people wanting to experiment with ZEO.

We serve our content up through Apache (fast delivery of static content, CGI
scripts and PHP4 served too).

I'm using the VHM method of routing Apache requests through to my ZServer
installation so (only a snippet shown, and this is an example);

        RewriteEngine on
        RewriteRule ^/cgi-bin   - [L]
        RewriteRule ^/static    - [L]
        RewriteRule ^/ltsn_images - [L]
        RewriteRule ^/(.*)
http://localhost:18080/VirtualHostBase/http/myserver.ncl.ac.uk:80/VirtualHos
tRoot/$1 [P]

Following the instructions from Dave Shaws' page I have a ZEO server running
on port 8080 and a client running on port 8081

One idea I've had from reading the Apache Rewrite rules page at
<http://httpd.apache.org/docs/misc/rewriteguide.html>
Is to use ProxyPassReverse (in some way), i.e.


ProxyPassReverse  /  http://localhost:8080/
ProxyPassReverse  /  http://localhost:8081/


My question is this;

What can I do to get requests from myserver.ncl.ac.uk farmed out to my ZEO
server-client farm?

Any pointers would be really appreciated.
Cheers
Tone.
-- 
Dr Tony McDonald,  Assistant Director, FMCC, http://www.fmcc.org.uk/
The Medical School, Newcastle University Tel: +44 191 243 6140
A Zope list for UK HE/FE  http://www.fmcc.org.uk/mailman/listinfo/zope


_______________________________________________
Zope maillist  -  Zope@zope.org
http://lists.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope-dev )