





Лично я работал с FastCGI в течение некоторого времени (около 6 месяцев), и время отклика «кажется» быстрее при загрузке страницы таким образом по сравнению с mod___python. Однако критическая причина для меня заключается в том, что я не видел очевидного способа сделать несколько сайтов из одной и той же установки apache / mod_python, тогда как FastCGI был относительной простой задачей.
Впрочем, особо тщательных экспериментов я не проводил :-)
[Редактировать] Однако, исходя из опыта, настройка FastCGI может быть немного сложной задачей в первый раз. Я все хочу написать руководство ..!
lighttpd с FastCGI будет номинально быстрее, но на самом деле время, необходимое для запуска вашего кода Python и любых обращений к базе данных, которые он делает, полностью затмевает любое преимущество в производительности, которое вы получаете между веб-серверами.
mod_python и apache дадут вам немного больше гибкости с точки зрения функций, если вы хотите писать код вне django, который выполняет такие вещи, как дайджест-аутентификация или получение / настройка любого причудливого HTTP-заголовка. Возможно, вы захотите использовать другие встроенные функции apache, такие как mod_rewrite.
Если вас беспокоит память, не используйте apache / mod_python, и это очень поможет. Apache имеет тенденцию использовать много оперативной памяти, и код mod_python, который склеивает все функции apache, также занимает много места в памяти. Не говоря уже о многопроцессорной природе apache, как правило, потребляет больше оперативной памяти, поскольку каждый процесс увеличивается до размера самого интенсивного запроса.
Я использую его с nginx. не уверен, действительно ли это быстрее, но определенно меньше нагрузка на ОЗУ / ЦП. Также проще запустить несколько процессов Django и заставить nginx сопоставить каждый префикс URL-адреса с другим сокетом. все еще не в полной мере используют модуль memcached nginx, но первые тесты показывают преимущество в скорости огромный.
Также есть mod_wsgi, он, кажется, быстрее, чем mod_python, и режим демона работает аналогично FastCGI
Я сделал и то, и другое, и с Apache / mod_python было проще работать и он был более стабильным. Но в эти дни я перешел на Apache / mod_wsgi, это все, что я когда-либо хотел, и даже больше:
.wsgi, чтобы перезагрузить его вместо перезапуска Apache).Если кого-то все еще волнует, разделение вашего wsgi-сервера с помощью uwsgi или gunicorn и выход на веб-сервер по вашему выбору - это направление, которое лучше всего работает для каждого проекта, который я видел. Оставаться с Apache - это своего рода смертный приговор для вашего сайта.
Nginx с mod_wsgi
Я бы порекомендовал конфигурации WSGI; Я все еще хочу отказаться от apache, но на сервере всегда есть какое-то устаревшее приложение, которое, кажется, требует этого. Кроме того, экология приложений WSGI очень разнообразна и позволяет использовать такие хитрые приемы, как последовательное соединение «промежуточного программного обеспечения» WSGI между сервером и приложением.
Однако в настоящее время существуют известные проблемы с некоторыми приложениями и apache mod_wsgi, особенно некоторые приложения ctypes, поэтому будьте осторожны, если вы пытаетесь запустить, скажем, геоджанго, который широко использует ctypes. В настоящее время я работаю над этими проблемами, возвращаясь к fastcgi самостоятельно.
Вы все еще предпочитаете Apache / mod_wsgi почти 2,5 года спустя?