В настоящее время я использую Apache 2.0 и FastCGI для обслуживания своих сайтов Django (я размещаю несколько сайтов с одного сервера / IP). У каждого сайта есть свой собственный процесс FastCGI, который не позволяет Apache создавать несколько копий, которые могут использовать много памяти, и означает, что я могу перезапустить серверную часть одного сайта Django без перезапуска Apache.
Это разумный способ делать что-то и есть ли другие / лучшие альтернативы?
Вам обязательно нужен mod-wsgi.
mod-wsgi разработан теми же разработчиками, что и mod-python много лет назад. mod-wsgi теперь рекомендуется вместо mod-python для всех современных фреймворков приложений, включая django.
По сути, mod-wsgi имеет два режима работы: встроенный (самый быстрый - вроде как mod-python, только быстрее) или демон (вроде fast-cgi).
В режиме демона предпочтительнее fast-cgi, потому что:
Во встроенном режиме предпочтительнее модифицировать python, потому что:
Вот документация: http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango
/ Ричи
Я успешно использую Apache2 и mod_python. Вы просто добавляете django-app. конкретные вещи для apache, подобные этому (пример взят из VHost, на котором запущен ReviewBoard с review-board.org):
<Location "/reviewboard">
SetHandler mod_python
PythonPath "['/usr/lib/python2.4/site-packages/django'] + ['/usr
/local/reviewboard'] + ['/usr/local/reviewboard/djblets', '/usr/local'] + sys.pa
th"
SetEnv DJANGO_SETTINGS_MODULE reviewboard.settings
PythonHandler django.core.handlers.modpython
PythonAutoReload Off
PythonDebug Off
PythonInterpreter reviewboard
</Location>
Важным параметром в этом случае является уникальность PythonInterpreter для различных приложений django.
Удачи.
Раньше я использую nginx и supervisord (небольшое руководство по России http://buzzja.mine.nu/blog/2009/02/21/dzhango-za-stenoj/ )