[Catalyst] Why use external FastCGI apps?

Matt Pitts mpitts at a3its.com
Tue Feb 19 14:58:05 GMT 2008


> -----Original Message-----
> From: Matt Pitts [mailto:mpitts at a3its.com]
> Sent: Monday, February 11, 2008 11:47 AM
> To: mitch at onsitesquad.com; The elegant MVC web framework
> Subject: RE: [Catalyst] Why use external FastCGI apps?
> 
> Although I haven't had any experience yet with *external* fastcgi, I'm
> feeling this approach as well, mainly because it allows me to "hang my
> hat" on the starting/stopping/reloading of apache. I'm also trying to
> treat an Apache vhost like an "appliance" that I can drop anywhere. I
> basically have *everything* related to a single vhost organized under
a
> standard structure and I keep it all in Subversion.
> 
> This way, deploying a site to a different machine is
>  - get vhost "appliance" from subversion
>  - symlink vhost conf file into apache vhosts.d
>  - sync logs if necessary
>  - apache reload
> 
> I know my model isn't perfect, but if I use external fastcgi then it
> adds an "easily looked over" step - create/symlink some fastcgi init
> script.
> 
> The only things that will definitively push the use of external
fastcgi
> are: if I cannot get mod_fcgid to work with PAR files; or if I'm happy
> with external fastcgi testing/memory usage and can integrate it into
my
> vhost model without too much unhappiness.

Well, external FCGI ended up winning me over, mainly because I couldn't
get mod_fcgid to launch from a PAR.
However, I must confess that I don't mind the approach now as I have
built init scripts and organized things
so that they are sane to me. As Yuval said, this does reduce the config
mess.

If anyone is interested here is my setup...

 - Apache 2.2 proxy frontend w/ proxy_balancer and its manager
interface; mod_cband for throttling and its live traffic interface
 - 2 Apache 2.2 backends each doing static file serving and external
FCGI to local Cat apps

When I do updates I just use the proxy_balancer manager interface to
disable the host I'm going to update and do the switch-a-roo.
I realize it's not perfect because it relies on my mouse clicking, so I
may still end up writing a script to do the switching
at the FCGI app, but this works for now. I'd really love to hack up a
patch to mod_proxy that allows you to switch one backend on
and another one off at the same time.

The next thing I'd like to implement is database load balancing so that
I'm not locked into a single database system. This will
probably be another thread.

Thanks to all of you who gave input to this one.

v/r

-matt



More information about the Catalyst mailing list