Каковы плюсы и минусы запуска (i) общесистемной системы gunicorn и (ii) установки огнестрельного оружия в расчете на virtualenv (при условии 5-6 virtualenvs на 512 Мб VM) - PullRequest
4 голосов
/ 30 декабря 2011

У меня 5-6 сайтов поверх django. Каждый проект django находится в своем собственном virtualenv и обслуживает один веб-сайт.

В настоящее время я устанавливаю gunicorn per virtualenv, и поэтому каждый проект django имеет свою собственную установку и процессы gunicorn.

Каковы плюсы и минусы этого подхода и альтернатива установки всей системы gunicorn с одной установкой gunicorn, управляющей всеми веб-сайтами (как при стандартной настройке apache).

Среда представляет собой виртуальную машину объемом 512 МБ, на которой работает Ubuntu 11.04 на линоде. Конечно, я использую nginx для прокси-запросов на gunicorn.

Ответы [ 2 ]

6 голосов
/ 03 января 2012

На множестве наших серверов у нас есть целых 10 различных приложений django, каждый из которых работает со своим собственным gunicorn, в своем собственном virtualenv.

Мы используем одну всю систему процессов супервизора, чтобы контролировать их всех.

У нас также есть один процесс nginx, который обрабатывает весь трафик (обратный прокси-сервер, обслуживание статического носителя и т. Д.) Для всех приложений.

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

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

Если вы запустите одну версию gunicorn для всего, и что-нибудь случится с этим процессом gunicorn, то это повлияет на все ваши приложения, что не идеально. Это также ограничивает то, что вы можете делать, если вы хотите запускать eventlet в одном приложении, gevent в другом и синхронизировать в другом, проще, если они все работают по отдельности. Также некоторым приложениям может потребоваться больше процессов, чем другим, и это легче настроить, если они разделены.

Если вы применяете подход apache, это может снизить общий объем ресурсов, поскольку вам не нужно будет запускать несколько версий одних и тех же процессов для каждого приложения. Если вы ограничены в ресурсах, это может оказаться более значительным для вас, но в настоящее время память и процессор настолько дешевы, что это не проблема.

Многое из этого зависит от того, сколько трафика будет получать каждое из этих приложений. Если вы вообще не получаете трафик, делайте то, что вам проще всего настроить и обслуживать. Если вы получаете тонну трафика или планируете получить тонну, то то, что у вас есть сейчас, вероятно, изменится, когда вы перерастете свои текущие настройки.

4 голосов
/ 30 декабря 2011

Как я понимаю, вы говорите о трех вариантах:

  • Один процесс Gunicorn для всех ваших проектов
  • Одна установка Gunicorn с отдельными процессами для каждого проекта
  • Несколько установок Gunicorn, по одной на каждого virtualenv

Я не уверен, возможно ли первое, но Документы Gunicorn кажутся ориентированными на однуиз двух других вариантов, и я думаю, что обычно его нужно создавать с помощью одного модуля WSGI.Кроме того, вы также потеряете возможность убивать или перезапускать серверы для отдельных проектов, не мешая другим.

Что касается необходимости установки отдельного Gunicorn для каждого virtualenv, то это, безусловно, подход , предложенный командой Gunicorn , и тот, который даст вам гибкость в использовании возможностей новой версии Gunicorn в новом проекте без потенциальной поломки существующих версий.

Краткий ответ: вам нужноиметь отдельные экземпляры Gunicorn для каждого проекта;независимо от того, есть ли у вас отдельные установки, зависит от вас, но это, вероятно, сэкономит ваше время и головные боли.

...