While some of the things you mention (caching, etc.) can be a purpose for the reverse proxy server, the key reason is to provide a buffer for all of the communication bits with clients that are not related to processing the actual request. The front servers take the initial connection from the client, including potential SSL set-up then proxy to the back mod_perl server to handle the actual request.

As soon as the back server completes the request, it moves on to the next. Meanwhile, the front (reverse proxy) server handles streaming the request back to the client which can be bound by a slow network connection or any number of other reasons.

So caching is only one advantage of this set-up. The main goal is to make sure the fat processes are busy all the time and not blocking on something out of your control (like someone connecting via dial-up or mobile device).

Jim


Gary Sewell wrote:
Hi again,

As I mentioned we run 4 mod perl servers, theya re all apache 1.3 , 2 are
64-bit 2 are 32-bit machines.

The discrepancies I mentioned in the size of each of our apache instances is
something I don't think I personally be able to get to the bottom of, I have
attempted Apache::Status, this gives out our loaded modules etc but not
specific sizes, so its hard to find what I taking up the 200mb. Lets put
that to the side.

I am interested in the reverse proxy idea. We currently also run a static
image/js/css server and a static php server that runs the static pages we
are able to crate which is very few, 99% of our pages are dynamic and change
every second. Due to the bulk of our code (100Mb @ 32-bit & 200Mb @ 64-bit)
we are only able to set Max Clients to 40. After arriving at a static php
homepage we refer subsequent pages randomly to one of the modperl servers to
share the stress.
Is our php server acting similar to a reverse-proxy or am I missing out on
something, would a reverse-proxy help us with our setup. We are unable to
cache content and hit live databases for every dynamic page we serve.
Images, js and css are all served from a slimmed down apache server so these
aren't a problem.

Thanks for the input.
GS

-----Original Message-----
From: Frank Wiles [mailto:[EMAIL PROTECTED] Sent: 06 November 2007 18:08
To: Mark Maunder
Cc: Perrin Harkins; Darryl Miles; Gary Sewell; modperl@perl.apache.org
Subject: Re: 32 & 64 bit memory differences

On Sun, 4 Nov 2007 21:28:34 -0800
"Mark Maunder" <[EMAIL PROTECTED]> wrote:

I run lighttpd as reverse proxy in front of mod_perl configured with
prefork. I average 100 to 200 concurrent connections on lighttpd and
need 4 mod_perl processes with keepalive disabled to service all
those requests. [thanks Perrin for suggesting this config!!]
That's actually a pretty common ratio of front to backend servers.
  I *highly* recommend a reverse proxy for all but the smallest
environments.
 -------------------------------------------------------
Frank Wiles, Revolution Systems, LLC. Personal : [EMAIL PROTECTED] http://www.wiles.org Work : [EMAIL PROTECTED] http://www.revsys.com


--
Jim Brandt
Administrative Computing Services
University at Buffalo

Reply via email to