Подтвердить что ты не робот

Запуск Django с FastCGI или с mod_python

который вы бы порекомендовали? который быстрее, надежнее? apache mod_python или nginx/lighttpd FastCGI?

4b9b3361

Ответ 1

Я сделал оба, и Apache/mod_python, как правило, легче работать и более стабильно. Но в эти дни я перешел на Apache/mod_wsgi, и это все, что я когда-либо хотел, и многое другое:

  • Простое управление процессами демона.
  • В результате значительно улучшенная изоляция процесса (запуск нескольких сайтов в одной и той же конфигурации Apache с mod_python почти всегда заканчивается проблемой - переменные окружения и C-расширения распространяются по сайтам, когда вы это делаете).
  • Простая перезагрузка кода (установите его правильно, и вы можете просто прикоснуться к файлу .wsgi для перезагрузки вместо перезапуска Apache).
  • Более предсказуемое использование ресурсов. При использовании mod_python использование памяти для использования дочернего процесса Apache может сильно перепрыгнуть. С mod_wsgi это довольно стабильно: когда все загружено, вы знаете, сколько памяти он будет использовать.

Ответ 2

lighttpd с FastCGI будет номинально быстрее, но на самом деле время, затрачиваемое на запуск вашего кода на Python, и любые удары базы данных, которые он делает, полностью сводят к минимуму любые выгоды, которые вы получаете между веб-серверами.

mod_python и apache предоставят вам дополнительную гибкость, если вы хотите написать код за пределами django, который делает такие вещи, как digest auth, или любой причудливый HTTP-заголовок, получающий/устанавливающий. Возможно, вы хотите использовать другие встроенные функции apache, такие как mod_rewrite.

Если память вызывает беспокойство, то оставаться в стороне от apache/mod_python поможет много. Apache имеет тенденцию использовать много оперативной памяти, а код mod_python, который склеивается во все функциональные возможности apache, также занимает много места в памяти. Не говоря уже о многопроцессном характере apache имеет тенденцию съедать больше ОЗУ, так как каждый процесс растет до размера его наиболее интенсивного запроса.

Ответ 3

Nginx с mod_wsgi

Ответ 4

Лично я работал с FastCGI в течение некоторого времени (6 месяцев или около того), и время ответа "казалось" быстрее при загрузке страницы таким образом против mod___python. Критической причиной для меня является то, что я не мог видеть очевидный способ сделать несколько сайтов из одной и той же установки apache/mod_python, тогда как FastCGI был относительным без проблем.

Я не проводил особо тщательных экспериментов, хотя: -)

[Edit] Говоря об опыте, настройка FastCGI может быть немного больной в первый раз. Я сохраняю смысл писать путеводитель.!

Ответ 5

Я использую его с nginx. не уверен, что это действительно быстрее, но, конечно, меньше нагрузки на RAM/CPU. Также проще запустить несколько процессов Django и настроить nginx каждый префикс URL для другого сокета. все еще не в полной мере использует модуль nginx memcached, но первые тесты показывают огромное преимущество в скорости.

Ответ 6

Там также mod_wsgi, он, кажется, быстрее, чем mod_python, и режим демона работает аналогично FastCGI

Ответ 7

Я бы рекомендовал конфигурации WSGI; Я продолжаю понимать, что я пытаюсь использовать apache, но на сервере всегда есть какое-то унаследованное приложение, которое, похоже, требует его. Кроме того, экология приложений WSGI очень разнообразна и позволяет использовать аккуратные трюки, такие как связующее ПО WSGI "межплатное" между сервером и приложением.

Однако в настоящее время существуют известные проблемы с некоторыми приложениями и apache mod_wsgi, особенно некоторые приложения ctypes, поэтому будьте осторожны, если вы пытаетесь выполните, скажем, geodjango, который широко использует ctypes. В настоящее время я работаю над этими проблемами, возвращаясь к Fastcgi самостоятельно.