mod_rails aka mod_rack aka mod_ruby

Cliff Wells cliff at
Mon Jun 16 06:35:30 MSD 2008

On Sat, 2008-06-14 at 17:57 -0400, Dan M wrote:
> On Fri, Jun 13, 2008 at 6:24 AM, Manlio Perillo
> <manlio_perillo at> wrote:

> > Embedding in Nginx is quite different than embedding in Apache.
> It's still embedding. Let web servers be web servers and application
> servers and languages be separate.

In general I agree with the sentiment that embedding languages (ala
Apache's mod_python) is bad.  However, in fairness, the recommended
deployment for Manlio's mod_wsgi it to *not* run it in your main Nginx
instance, rather to run a specialized Nginx instance that is proxied to:

Plain Nginx -> Nginx+mod_wsgi -> application

While this might seem like splitting hairs, the difference is that
rather than looking at it as embedding your application in Nginx, you
should look at is as your application using Nginx as an application
server (in the specific case of Python, you would be using Nginx rather
than, say CherryPy's HTTP server).   This means you can alleviate some
security issues by running that instance as a less privileged user, the 
"bloat" is restricted to this instance (and probably not much worse than
any other Python application), etc.


More information about the nginx mailing list