I'd like to scale out by adding more EC2 mongrel instances, and scale down by removing EC2 mongrel instances.
Is there a way to dynamically add/remove mongrel instances from Apache mod_proxy_balancer. It seems that I'd have to manually change the configuration file and restart apache whenever I add/remove a new mongrel.
> Is there a way to dynamically add/remove mongrel instances from Apache
> mod_proxy_balancer. It seems that I'd have to manually change the
> configuration file and restart apache whenever I add/remove a new
> mongrel.
Well, you could write a script to edit the config for you and send
apache a usr1 signal ( "kill -usr1 [pid]" ) to cause it to reload the
updated config, then trigger the script whenever a new EC2 instance is
started or stopped.
Another approach could be to proxy everything to swiftiply (
http://swiftiply.swiftcore.org/ ), and have each new EC2 instances
mongrels register/deregister with the swiftiply proxy.
Yet another option would be to use switchpipe ( http://switchpipe.org/ ) to manage things.
I haven't done any of these, of course, so I'm basically talking
through my hat, but they all sound plausible!
On Tue, 2008-02-19 at 01:41 +0100, Yaxm Yaxm wrote: > Is there a way to dynamically add/remove mongrel instances from Apache > mod_proxy_balancer. It seems that I'd have to manually change the > configuration file and restart apache whenever I add/remove a new > mongrel.
mod_proxy_balancer comes with the "balancer manager" with which can toggle a member of the cluster offline and back online:
You could script that interface and then call it from Capistrano. I Googled around but couldn't find an existing library for this... kind of surprising. Maybe most folks are just going the "rewriting the config file and send USR1" route.
On Feb 19, 10:05 am, digitalronin <da...@digitalronin.com> wrote:
> > Is there a way to dynamically add/remove mongrel instances from Apache
> > mod_proxy_balancer. It seems that I'd have to manually change the
> > configuration file and restart apache whenever I add/remove a new
> > mongrel.
> [snip]
> Yet another option would be to use switchpipe (http://switchpipe.org/ > ) to manage things.
Yep, that's exactly what SwitchPipe does. Dynamically launches,
manages, and kills backend processes that speak HTTP. Even better than
that, it'll kill Mongrels that aren't in use for a certain period of
time.. so rather than having, say, 3 Mongrels running ALL the time on
a quiet app, it'll scale it back to zero Mongrels after X seconds of
inactivity if you like. Alternatively you can make it keep 1 Mongrel
up to pick up requests before scaling up to meet demand. Whatever you
want to do, it does it.
They accept the port number as an option. I use this as part of my
monit system to keep things in check. I have a very high traffic site
and I found proxy_balancer didn't react quick enough.
usage:
service monit disable 8081
service monit enable 8081
On Feb 22, 1:51 pm, Peter Cooper <pcoo...@gmail.com> wrote:
> On Feb 19, 10:05 am, digitalronin <da...@digitalronin.com> wrote:
> > > Is there a way to dynamically add/remove mongrel instances from Apache
> > > mod_proxy_balancer. It seems that I'd have to manually change the
> > > configuration file and restart apache whenever I add/remove a new
> > > mongrel.
> > [snip]
> > Yet another option would be to use switchpipe (http://switchpipe.org/ > > ) to manage things.
> Yep, that's exactly what SwitchPipe does. Dynamically launches,
> manages, and kills backend processes that speak HTTP. Even better than
> that, it'll kill Mongrels that aren't in use for a certain period of
> time.. so rather than having, say, 3 Mongrels running ALL the time on
> a quiet app, it'll scale it back to zero Mongrels after X seconds of
> inactivity if you like. Alternatively you can make it keep 1 Mongrel
> up to pick up requests before scaling up to meet demand. Whatever you
> want to do, it does it.