[Mongrel] Recommendation: Is Apache Really Serving Files?

Charles Brian Quinn me at seebq.com
Mon Sep 11 19:26:23 EDT 2006


So here's another fun way to do it:

jump on your app server:

# ps auxww | grep mongrel

find the processes, I'm running 5:

root     13949  0.7  3.0 54188 30936 ?       Sl   19:09   0:03
/usr/local/bin/ruby /usr/local/bin/mongrel_rails start -d -e
production -p 8001 -a 127.0.0.1 -l
/var/www/apps/xxxxx/current/log/mongrel.log -P
/var/www/apps/xxxxx/current/log/mongrel.8001.pid -c
/var/www/apps/xxxxx/current
root     13954  0.8  3.5 60028 36464 ?       Sl   19:09   0:03
/usr/local/bin/ruby /usr/local/bin/mongrel_rails start -d -e
production -p 8002 -a 127.0.0.1 -l
/var/www/apps/xxxxx/current/log/mongrel.log -P
/var/www/apps/xxxxx/current/log/mongrel.8002.pid -c
/var/www/apps/xxxxx/current
root     13959  0.4  2.8 52612 29088 ?       Sl   19:09   0:02
/usr/local/bin/ruby /usr/local/bin/mongrel_rails start -d -e
production -p 8003 -a 127.0.0.1 -l
/var/www/apps/xxxxx/current/log/mongrel.log -P
/var/www/apps/xxxxx/current/log/mongrel.8003.pid -c
/var/www/apps/xxxxx/current
root     13963  0.7  4.2 68448 43768 ?       Sl   19:09   0:03
/usr/local/bin/ruby /usr/local/bin/mongrel_rails start -d -e
production -p 8004 -a 127.0.0.1 -l
/var/www/apps/xxxxx/current/log/mongrel.log -P
/var/www/apps/xxxxx/current/log/mongrel.8004.pid -c
/var/www/apps/xxxxx/current
root     13998  1.4  2.5 48740 25916 ?       Sl   19:12   0:03
/usr/local/bin/ruby /usr/local/bin/mongrel_rails start -d -e
production -p 8000 -a 127.0.0.1 -l
/var/www/apps/xxxxx/current/log/mongrel.log -P
/var/www/apps/xxxxx/current/log/mongrel.8000.pid -c
/var/www/apps/xxxxx/current
root     14043  0.0  0.0  4240  632 pts/0    R+   19:16   0:00 grep mongrel

now kill one (your users will love this if you're live).  copy that line first

# kill -9 13998

and restart it erasing the -d (daemonize option) and adding -B

# /usr/local/bin/ruby /usr/local/bin/mongrel_rails start -e production
-p 8000 -a 127.0.0.1 -l /var/www/apps/xxxxx/current/log/mongrel.log -P
/var/www/apps/xxxxx/current/log/mongrel.8000.pid -c
/var/www/apps/xxxxx/current -B
** Starting Mongrel listening at 127.0.0.1:8000

It should start up, now on the command line, and you should see
dynamic requests only:

xx.xx.xx.xx - [Mon, 11 Sep 2006 23:17:05 GMT] "GET /messages?group=988 HTTP/1.1"
xx.xx.xx.xx - [Mon, 11 Sep 2006 23:17:14 GMT] "GET /messages/list HTTP/1.1"
xx.xx.xx.xx - [Mon, 11 Sep 2006 23:17:41 GMT] "GET /articles/show/172 HTTP/1.1"
xx.xx.xx.xx, xx.xx.xx.xx - [Mon, 11 Sep 2006 23:19:56 GMT] "GET
/articles/show/150 HTTP/1.1"

If you are just running run mongrel_rails instance and proxy passing,
I think we already established that apache is just forwarding on
everything to mongrel, so that's fine for testing (and fine if you
just want apache to be a big ole request forwarding server), but
you'll need some apache kung-fu (adding Coda's mod_rewrite rules) for
not passing on static content to dirs.  You'll have to steal it from
the advanced setup (until I can rewrite it and test those rules with
the proxy pass settings):
http://mongrel.rubyforge.org/docs/apache.html

hope this helps,
-- 
Charles Brian Quinn
self-promotion: www.seebq.com
highgroove studios: www.highgroove.com
slingshot hosting: www.slingshothosting.com


More information about the Mongrel-users mailing list