В настоящее время я запускаю Apache + Django. Прекрасно работает.
Многие люди, особенно эта ветка: https://stackoverflow.com/questions/475386/apache-vs-nginx-vs-lighttpd-which-is-simpler-to-configure-and-administer говорят, что nginx / cherokee - это более новый и более предпочтительный веб-сервер.
Если я вообще не обслуживаю статический контент из Apache, есть ли причина использовать Nginx или что-то еще? В настоящее время я обслуживаю статический контент через Amazon S3.
Это как спорить о том, какая красивая женщина лучше выглядит. Если Apache работает на вас и вам не нужны какие-либо функции, специфичные для другого сервера, придерживайтесь Apache. Что касается предпочтительного решения, Django на самом деле его не увенчал, и я никогда не видел реальных цифр о том, кто какой сервер использует для сайтов Django, когда речь идет о apache, nginx, cherokee и чем угодно. Apache в отрасли в целом - это горилла весом 800 фунтов, поэтому вы не ошибетесь, изучив эти навыки.
Лично я перешел на nginx только потому, что он был в миллион раз проще в использовании, а файлы конфигурации имели для меня гораздо больше смысла. Потребовалось время, чтобы перенести несколько вещей mod_rewrite, но в остальном я был исключительно доволен легкостью, с которой я смог разместить приложения Perl, Python и PHP за одним и тем же HTTP-сервером.
Кроме того, он использует меньше оперативной памяти и быстрее реагирует. Это победа-победа.
Возможно, это дело личного вкуса, но я считаю, что Apache сложно настроить, независимо от того, используете ли вы mod_wsgi или mod_python (кто-нибудь все еще использует это?) Для обслуживания вашего приложения Django.
Недавно я открыл для себя uWSGI server, и я очень доволен им: очень быстрый, простой в настройке и обслуживании, отлично работает с nginx / cherokee, так что вы можете попробовать.
Обновление: извините за неправильное чтение заголовка. Я торопился.
Я думаю, что nginx будет лучшим вариантом, если вы решите сервер статического контента с исключительной скоростью. В остальном придерживайтесь apache, это просто здорово.
Проверьте эту ссылку: http://code.google.com/p/scalr/wiki/NginxStatic
Обычно люди используют nginx для обслуживания статического контента. Вы можете настроить uwsgi + nginx (nginx будет похож на прокси для uwsgi). Самым простым (и, вероятно, наиболее широко используемым) является Apache mod_wsgi. Если вы не обслуживаете статический контент, вы можете его придерживаться. Конфигурация несложная, ее можно найти в документации django.