Following a HTTP request through scaled server setup

In a typical Rails server setup you might have Apache to serve static
pages and load balance (reverse proxy), followed by several Mongrel
application servers. This would be a pure HTTP setup, no CGI/ISAPI.

[APACHE] -> [MONGREL] x n

How does Apache get the static content, is it uploaded directly to
Apache’s public folder or is it cached there the first time a static
resource is requested from an application server - if this is the case
how does Apache know which files to cache?

When a request comes in to Apache because it is TCP a connection is
created, is this connection held open until a reply is generated by an
application server? If no reply is given (timeout) does this effect the
load balancer, is that server removed from the list? Is the next
application server

And finally if SSL is used does Apache do the decryption before
forwarding the request on to an application server?

It would be really helpful to map a HTTP request/response through a
typical (generic) rails setup, I think the ‘worst’ (bottleneck) aspect
of Rails is deployment and it might help people not familiar with
setting up servers. I would be happy to put together a document showing
this if I could get some help from this forum.

Is there need for something like this?

On Sun, 2006-09-03 at 13:52 +0200, Kris wrote:

It would be really helpful to map a HTTP request/response through a
typical (generic) rails setup, I think the ‘worst’ (bottleneck) aspect
of Rails is deployment and it might help people not familiar with
setting up servers. I would be happy to put together a document showing
this if I could get some help from this forum.

Kris, feel free to write it up and I’ll include it. Here’s instructions
on how to contribute docs:

http://mongrel.rubyforge.org/docs/index.html

And I’m documentation clean-up and writing all day today, so if you can
send it then that’ll be good timing.


Zed A. Shaw

http://mongrel.rubyforge.org/
http://www.lingr.com/room/3yXhqKbfPy8 – Come get help.