Howdy, answers below…
On 5/2/06 4:01 PM, “Greg E.” email@example.com wrote:
(pound is said to be somewhat slow and therefore won¹t scale well; lighttpd
has ssl built in, but there are some problems with mod_proxy so on the mongrel
website it says to connect to one port which is running balance; pen has only
experimental SSL built into it; Apache seems like overkill if it is ONLY being
used as an SSL front end)
You’ve got three options that seem to be coming out as the best
for mongrel clusters (whether you need SSL or not):
Use apache with mod_proxy_balancer. Jonathan wrote a great article
a huge URI that covers this really well.
litespeed web server with mongrel, written up by Rick
Simple little pound setup with mongrel. Written up by nobody yet.
There have also been mixed reviews of the following two options for
not needing SSL:
A) pen + mongrel written up by Ezra
B) balance + mongrel with no write-up but pretty simple to get going
And, while you’re at it, take a look at Bradley of railsmachine.net who
a spiffy cluster management plugin for mongrel:
That should keep you busy for a while.
Most of the folks I talk with have found that lighttpd is start to lack
the stability department, especially with it’s mod_proxy backends. Man
wish Jan would discover the love valgrind shines on C code.
- if all pages are protected by login (being done in Rails using session
variables to make sure that someone is logged in before serving a page), then
pages caching in Lighttp/Apache isn¹t really feasible since they serve pages
without checking with Rails first (i.e., without making sure the person is
logged in) unless you want to have lighttpd/apache do the authentication
(which I don¹t want). Given that lighttpd / apache are usually recommended to
be in front of mongrel is in the case of serving up static content? but
without that, then the only reason to use them is as a SSL front end, but then
there are other options.
Not sure if this is a question Greg, but yeah, authenticated pages pose
problem. Read the above linked article on mod_proxy_balancer. Jonathan
does a great job of showing his architecture and talking about how he
use fragment caching and memcached for nearly the same reason.
- if you¹re going to run multiple apps on the setup (as: app1.eyetools.com,
app2.eyetools.com, etc) does that change the recommendation?
Options 1-3 all handle this situation just fine, but with varying
complexity. Apache is probably the most complex, followed by litspeed,
pound (but I’m sure others have different opinions).
Options A & B can’t do this since they just proxy tcp. You could
potentially do the rails trick where you can give conditional content
on the host, but I’m not really sure how you hook that one up.
Hope that helps. If you get one working, please write it up for
that we can start to build more knowledge around deployments.
Zed A. Shaw