Самый чистый и Самый Быстрый сервер устанавливает для [закрытого] Django

Если вы используете платформу тестирования, например Mocha , с библиотекой утверждений Chai , вы можете использовать равенство deep для сравнения массивов.

expect(a1).to.deep.equal(a2)

Это должно возвращать true, только если массивы имеют равные элементы в соответствующих индексах.

43
задан Community 15 September 2008 в 02:14
поделиться

10 ответов

Так как я искал еще некоторые всесторонние ответы, я решил исследовать проблему сам подробно. Сообщите мне, неправильно понял ли я что-нибудь.

Некоторая общая рекомендация должны использовать отдельный веб-сервер для обработки медиа. Отдельным я имею в виду веб-сервер, который не выполняет Django. Этот сервер может быть, например:

  • Lighttpd (Lighty)
  • Nginx (EngineX)
  • Или некоторый другой легкий сервер

Затем для Django, можно спуститься по различным путям. Вы можете также:

  • Подача Django через [1 128] Apache и:

    • mod_python

      Это - конюшня и рекомендовало/хорошо зарегистрированный путь. Недостатки: использование большая память.

    • mod_wsgi

      Из того, что я понимаю, mod_wsgi, является более новой альтернативой. Это, кажется, быстрее и легче на ресурсах.

    • mod_fastcgi

      При использовании FastCGI Вы делегируете обслуживание Django к другому процессу. Так как mod_python включает интерпретатор Python в каждый запрос, это использует большую память. Это - способ обойти ту проблему. Также существуют некоторые проблемы безопасности.

      то, Что Вы делаете, - то, что Вы запускаете свой сервер Django FastCGI в отдельном процессе, и затем настраивает апача через перезаписи для вызова этого процесса при необходимости.

Или Вы можете:

  • Django Подачи, не используя Apache, но с другим сервером, который поддерживает FastCGI исходно:

    (Документация упоминает, что можно сделать это, если у Вас нет Apache определенными потребностями. Я предполагаю, что причина должна состоять в том, чтобы сохранить память.)

    • Lighttpd

    Это - сервер, который выполняет YouTube. Это кажется быстрым и простым в использовании, однако я видел отчеты о memoryleaks.

    • nginx

    я видел, что сравнительные тесты утверждают, что этот сервер еще быстрее, чем lighttpd. Это главным образом документируется в русский язык все же.

Другая вещь, из-за ограничений в Python Ваш сервер должен работать в разветвленном режиме, не поточном.

, Таким образом, это - мое текущее исследование, но я хочу больше мнений и событий.

26
ответ дан Peaches491 23 September 2019 в 13:01
поделиться

Мы используем nginx и FastCGI для всего нашего развертывания Django. Это главным образом, потому что мы обычно развертываемся в Slicehost и не хотим жертвовать всю нашу память к Apache. Я предполагаю, что это было бы нашим "вариантом использования".

Что касается комментариев о документации, находящейся главным образом на русском языке - я нашел, что большая часть информации о английский wiki очень полезна и точна. Этот сайт имеет демонстрационные конфигурации для Django также, от которого можно настроить собственную nginx конфигурацию.

1
ответ дан Ryan Duffield 23 September 2019 в 13:01
поделиться

При использовании lighthttpd можно также использовать FastCGI для обслуживания Django. Я не уверен, как скорость выдерживает сравнение с mod_wsgi, но если не изменяет память правильно, Вы извлекаете несколько пользы, которую Вы извлекли бы с mod_wsgi, который Вы не получите с mod_python. Основной, являющийся этим, можно дать каждому приложению его собственный процесс (который действительно полезен для хранения памяти различных разделенных приложений, а также для использования в своих интересах многоядерных компьютеров.

Редактирование: Только для добавления в отношении обновления о nginix, если не изменяет память, правильно снова, nginix использует "greenlets" для обработки параллелизма. Это означает, что Вы, возможно, должны немного больше стараться удостовериться, что одно приложение не съедает время всего сервера.

1
ответ дан Jason Baker 23 September 2019 в 13:01
поделиться

I’m с помощью nginx (0.6.32 взятый от Sid) с mod_wsgi. Это работает очень хорошо, хотя я, которого говорят can’t, ли it’s лучше, чем альтернативы, потому что я никогда не пробовал никого. Nginx имеет , поддержка memcached встроила, который может, возможно, взаимодействовать с Django, кэширующим промежуточное программное обеспечение (я, don’t на самом деле используют его, вместо этого я заполняю кэш вручную с помощью кэш-памяти Python и делаю недействительным его, когда изменения внесены), таким образом, удачные обращения в кэш полностью обходят Django (моя машина разработки может служить приблизительно 3 000 запросов в секунду).

протест А: nginx’ mod_wsgi высоко не нравятся названные местоположения (он пытается передать их в SCRIPT_NAME), таким образом, очевидный †˜ error_page 404 = @django ’ вызовет многочисленные неясные ошибки. Я должен был исправить mod_wsgi источник для фиксации этого.

2
ответ дан Roman Odaisky 23 September 2019 в 13:01
поделиться

Лучшая конфигурация не так известна, я думаю. Но вот:

  1. Использование nginx для обслуживания запросов (динамичный к приложению, статическое содержание непосредственно).
  2. веб-сервер Python Использования для обслуживания динамического контента.

Два самых быстрых решения для основанного на Python веб-сервера:

необходимо изучить Google для нахождения текущей лучшей конфигурации для django (все еще в разработке).

2
ответ дан carefulweb 23 September 2019 в 13:01
поделиться

Официально рекомендуемый способ развернуть django проект состоит в том, чтобы использовать mod_python с апачем. Это описано в документация. основное, про с этим, - то, что это - лучшее, зарегистрированное, наиболее поддерживаемое, и наиболее распространенный способ развернуться. Довод "против" - то, что это, вероятно, не является самым быстрым.

5
ответ дан dfarrell07 23 September 2019 в 13:01
поделиться

Я использую язык чероки .

Согласно их сравнительные тесты (мелкая частица соли с ними), это обрабатывает загрузку лучше и, чем Lighttpd и, чем nginx... Но это не то, почему я использую его.

я использую его потому что, если Вы тип cherokee-admin, это запускает новый сервер, в который можно войти (с одноразовым паролем) и настроить целый сервер через красиво сделанный webmin. Это - уничтожающая функция. Это уже сохранило меня партия из времени. И это сохраняет мой сервер много ресурсов!

Что касается django, я выполняю его как потоковый процесс SCGI. Работы хорошо. Язык чероки может поддерживать его в рабочем состоянии также. Снова, очень хорошая функция.

текущий Ubuntu repo версия очень стар, таким образом, я советовал бы использовать их PPA. Удача.

9
ответ дан Oli 23 September 2019 в 13:01
поделиться

Я изо всех сил пытаюсь понять все опции также. В это сообщение в блоге я нашел некоторые преимущества mod_wsgi по сравнению с mod_python объясненными.

Несколько сайтов низкого трафика на маленьком VPS делают потребление RAM первоочередной задачей, и mod_python походит на плохую опцию там. Используя lighttpd и FastCGI, мне удалось получить использование минимальной памяти простого сайта Django вниз к виртуальному и резидентному объекту на 6.5 МиБ на 58 МиБ (после того, как, перезапустив и служа единственному запросу non-RAM-heavy).

я заметил, что обновление от Python 2.4 до 2,5 на Травлении Debian увеличило место минимальной памяти процессов Python на несколько процентов. С другой стороны, 2.5's лучшее управление памятью могло бы иметь больший противоположный эффект на продолжительные процессы.

2
ответ дан akaihola 23 September 2019 в 13:01
поделиться

Поскольку @Barry сказал, использование документации mod_python. Я не использовал Ubuntu в качестве сервера, но имел хороший опыт с mod_wsgi на Солярисе. Можно найти документацию для mod_wsgi и Django на сайт mod_wsgi .

А быстрый обзор Ваших требований:

  • Легкий установить я нашел апачские 2.2 довольно легкими создать и установить.
  • Быстрый и легкий на ресурсах я сказал бы, что это зависит от Вашего использования и трафика. * Вы не можете хотеть к серверу все файлы с помощью Apache и использования LightTPD (lighty) к серверу статические файлы.
  • Может служить медиа-файлам , я предполагаю, что Вы имеете в виду изображения, флеш-файлы? Apache может сделать это.
  • Несколько сайтов на том же сервере хостинг Виртуального сервера на Apache.
  • Скорее не устанавливают другие расширения , Комментируют что-либо, что Вы не хотите в конфигурации Apache.
6
ответ дан Zoyt 23 September 2019 в 13:01
поделиться

Будьте проще: Django рекомендует Apache и mod_wsgi (или mod_python) . Если обслуживание файлов мультимедиа является очень важной частью вашего сервиса, рассмотрите возможность использования Amazon S3 или Rackspace CloudFiles.

2
ответ дан 26 November 2019 в 23:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: