Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I currently run Apache + Django. Works great.

Many people, especially this thread: 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.

share|improve this question

migrated from Jan 28 '11 at 15:40

This question came from our site for professional and enthusiast programmers.

up vote 5 down vote accepted

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.

share|improve this answer
Great analogy you used. Also if it ain't broke don't fix it. – Jacob Jan 28 '11 at 15:51
Statistics on what web server/hosting mechanism Django sites use at – Graham Dumpleton Jan 28 '11 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.

share|improve this answer
Cherokee/Nginx seems so hard to configure. Cherokee has so many options in their GUI thing. – Alex Jan 28 '11 at 9:37
@TIMEX I didn't like GUI thing too, thats why I went for nginx. – maksymko Jan 28 '11 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.

share|improve this answer

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:

share|improve this answer
Did even you read the title, much less the question? – Ignacio Vazquez-Abrams Jan 28 '11 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.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.