Развертывание Django (fastcgi, apache mod_wsgi, uwsgi, gunicorn) - PullRequest
17 голосов
/ 07 апреля 2010

Может кто-нибудь объяснить разницу между apache mod_wsgi в режиме демона и django fastcgi в многопоточном режиме. Я думаю, они оба используют потоки для параллелизма. Предположим, что я использую nginx в качестве внешнего интерфейса для apache mod_wsgi.

UPDATE:

Я сравниваю django, встроенный в fastcgi (./ manage.py method = threadaded maxchildren = 15) и mod_wsgi в режиме 'daemon' (пример WSGIDaemonProcess threads = 15). Они оба используют потоки и получают GIL, я прав?

ОБНОВЛЕНИЕ 2:

Так что, если они оба похожи, есть ли преимущества apache mod_wsgi перед fastcgi. Я вижу такие плюсы fastcgi:

  • нам не нужен apache
  • мы потребляем меньше оперативной памяти
  • Я заметил, что у fastcgi меньше накладных расходов

ОБНОВЛЕНИЕ 3:

Теперь я доволен nginx + uwsgi.

ОБНОВЛЕНИЕ 4:

Теперь я доволен nginx + gunicorn:)

1 Ответ

10 голосов
/ 07 апреля 2010

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

Дополнительную информацию о моделях процессов и потоков mod_wsgi смотрите:

http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading

Модели аналогичны, хотя mod_wsgi управляет самим процессом управления. Что происходит в FASTCGI, поскольку управление процессами зависит от того, какой механизм хостинга FASTCGI вы используете, и вы не говорите, что это такое.

Другое отличие состоит в том, что FASTCGI по-прежнему нужен отдельный мост FASTCGI к WSGI, такой как flup, где mod_wsgi не нуждается ни в каком мосте, поскольку изначально реализует интерфейс WSGI.

И, наконец, процесс FASTCGI - это exec / fork некоторого процесса супервизора или веб-сервера, зависящий от механизма хостинга. В mod_wsgi процессы являются форком только родительского процесса Apache. В целом это не имеет большого значения, но имеет некоторые последствия.

Существуют и другие различия, но они возникают больше, потому что mod_wsgi предлагает гораздо больше функциональности и настраиваемости, чем механизм хостинга FASTCGI.

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

...