Развертывание Django (fastcgi, apache mod_wsgi, uwsgi, gunicorn)
Может кто-нибудь объяснить разницу между apache mod_wsgi в режиме демона и django fastcgi в многопоточном режиме. Они оба используют потоки для параллелизма, я думаю.Предположим, что я использую nginx в качестве внешнего интерфейса для apache mod_wsgi.
ОБНОВИТЬ:
Я сравниваю 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 ответ
Также не нужно использовать потоки для обработки одновременных запросов. Это зависит от того, как вы их настраиваете. Вы можете использовать несколько процессов, каждый из которых является однопоточным, если хотите.
Для получения дополнительной информации о моделях процессов и потоков 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.
В любом случае, вопрос немного расплывчатый, можете ли вы более конкретно сказать, что именно вы хотите знать, или противопоставить их и почему? Тогда ответ может быть лучше нацелен.