Что лучше для Джанго? Lighttpd или Nginx? Или может быть что-то еще? [закрыто]

18

Какой из Lighttpd и Nginx, исходя из вашего опыта, лучше подходит для Django? Я использовал оба и почти не замечаю никакой разницы, они просто работают нормально ... Есть ли случаи, когда один из них работает намного лучше, чем другой? При ответе учитывайте как простоту настройки, так и эффективность.

Моя обычная установка - запускать отдельный процесс Django FCGI (например, in ./manage.py runfcgi daemonize=false port=8098 host=127.0.0.1) через daemontools или init.dскрипт, а lighty / nginx действует как обратный прокси-сервер.

О, и если вы чувствуете, что какой-то другой http-сервер намного лучше для Django, чем Lighty и Nginx, пожалуйста, не стесняйтесь поделиться своими мыслями.

Рышард Сзопа
источник
Если служба fastcgi умирает, daemontools supervise перезапустит ее в течение пяти секунд, поэтому служба будет восстановлена. Но у вас все еще есть небольшое отставание. В моем развертывании я обнаружил, что fastcgi хрупок и неожиданно останавливается под небольшим давлением. После нескольких простоев и нескольких неловких телефонных звонков от клиентов я переключил Nginx на обратный прокси-сервер для Apache mod_wsgi, и с тех пор все просто гудит.

Ответы:

14

И Nginx, и Lighttpd - лучший выбор, чем apache, когда речь заходит об их использовании в качестве обратного прокси-сервера для Django, Rails и т. Д. Оба поддерживают FastCGI и прокси Http. Оба предлагают однопоточную модель select () (или лучше) для эффективного использования ресурсов.

Однако мой голос идет за Nginx, у него очень активная пользовательская база (в настоящее время это дорогой набор Ruby on Rails), и он находится в стадии активной разработки. Lighttpd можно принять за смерть более 2 лет, и мы все еще ждем бета-версию 1.5.

Дейв Чейни
источник
7

mod_wsgi - рекомендуемый способ запуска приложения Django. Mod_wsgi в Apache намного лучше, чем nginx. Вы не можете найти официальный пакет (в текущих дистрибутивах Linux) для nginx mod_wsgi, и вам нужно скомпилировать его самостоятельно. Мне нравится nginx, но если вы хотите быть в безопасности, играйте с Apache mod_wsgi.

miHost
источник
2
Nginx mod_wsgi - это не то, что вы хотели бы использовать. Nginx лучше всего обслуживать статический контент и обратный прокси-сервер Apache mod_wsgi для генерации динамического содержимого. Вы не хотели бы использовать асинхронный веб-сервер как для создания динамических страниц, так и для предоставления статического содержимого. Apache mod_wsgi сам по себе не имеет особого смысла. Вы не хотите, чтобы этот зверь был занят распылением статических файлов, в то время как он должен выполнять тяжелую работу. Подробнее читайте здесь b-list.org/weblog/2008/jun/23/media
5

mod-wsgi - это лучший способ запуска приложений django в производстве, менее сложный, чем fastcgi, без проблем со временем запуска и т. д.

Настоящий мод-wsgi предназначен для apache, но есть другой мод-wsgi для nginx. Apache блестящий, я не могу комментировать nginx.

Лично я бы держался подальше от lighttpd. У него нет стабильности nginx, я еще не видел случай с lighttpd, у которого нет утечки памяти.

По сути, мой первый выбор - apache 2.2, второй - nginx.

Не верьте шумихе по поводу времени отклика и масштабируемости. Правда в том, что это просто не имеет значения. (Google использует Apache).

Богатый
источник
Google использует GWS ( en.wikipedia.org/wiki/Google_Web_Server ), а не Apache. Yahoo использует Apache, но это древний форк 1.3.
Дейв Чейни
YouTube использует или, по крайней мере, использует lighttpd, так что я не думаю, что это так плохо. Смотрите highscalability.com/youtube-architecture .
Кристиан Чиупиту
Да, но хотя GWS является секретным проектом, известно, что он основан на Apache.
YT не говорит, что у них есть своя легкая вилка. Это правда, светлая есть хорошо известная проблема утечки памяти. Я полагаю, что они, возможно, уже исправили это, но представитель сохраняется.
Абхишек Дуджари
2

Также рассмотрите возможность использования Google App Engine. Вы можете разместить свой проект Django там бесплатно и не беспокоиться об обслуживании серверной инфраструктуры.

Стивен Хассард
источник
8
Django в GAE имеет существенные ограничения, например, не поддерживает какие-либо функции Django для базы данных / ORM. Если он поддерживает то, что вам нужно, отлично - но проверьте внимательно!
Я считаю, что MySQL теперь поддерживается GAE, поэтому я предполагаю, что ORM будет также. Хотя это правда, у меня нет опыта пробовать это. Django без ORM, как порно без торрентов.
Абхишек Дуджари