I currently run Apache + Django. Works great.

Many people, especially this thread: https://stackoverflow.com/questions/475386/apache-vs-nginx-vs-lighttpd-which-is-simpler-to-configure-and-administer say that nginx/cherokee is the newer, more preferred web server to use.

If I am not serving any static content at all from Apache, is there any reason to use Nginx or anything else? I currently serve static content through Amazon S3.

5 Answers 5


This is like arguing over which beautiful woman is better looking. If Apache is working for you and you don't need any feature that's specific to another server, then stick with Apache. As for what the preferred solution is, Django hasn't really crowned one and I've never seen any actual numbers on who uses what server for Django sites when talking about apache vs nginx vs cherokee vs whatever. Apache, in the industry as a whole, is the 800-lb gorilla so you can't go wrong with learning those skills.

  • Great analogy you used. Also if it ain't broke don't fix it.
    – Jacob
    Commented Jan 28, 2011 at 15:51
  • Statistics on what web server/hosting mechanism Django sites use at djangosites.org/stats Commented Jan 28, 2011 at 20:49

It may be a matter of personal taste, but I find Apache to be hard to configure, whether you use mod_wsgi or mod_python (does anyone still use that?) to serve your Django application.

Recently I discovered myself a uWSGI server and I'm pretty happy with it: very fast, easy to configure and maintain, works great with nginx/cherokee, so you might want give it a try.

  • Cherokee/Nginx seems so hard to configure. Cherokee has so many options in their GUI thing.
    – Alex
    Commented Jan 28, 2011 at 9:37
  • @TIMEX I didn't like GUI thing too, thats why I went for nginx.
    – maksymko
    Commented Jan 28, 2011 at 9:59

Personally the only reason I changed to nginx was because it was a million times easier to use and the configuration files just made so much more sense to me. It did take awhile to port a few mod_rewrite things over but other than that I have been exceptionally pleased with the ease I have been able to host Perl, Python and PHP applications all behind the same HTTP server.

Plus it uses less RAM and responds faster. It's win win.


Update: sorry for reading the title wrong. I was in a hurry.

I think nginx would be better option if you decide to server static content in exceptional speed. Otherwise stick to apache, it's just great.

Check this link: http://code.google.com/p/scalr/wiki/NginxStatic

  • 3
    Did even you read the title, much less the question? Commented Jan 28, 2011 at 8:03

Usually people use nginx to serve static content. You may configure uwsgi + nginx (nginx will be like a proxy to a uwsgi) The simplest thing (and probably the most widely used) is Apache mod_wsgi. If you don't serve any static content you may stick to it. The configuration is not difficult and you can find it in django docs.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .