который вы бы порекомендовали? который быстрее, надежнее? apache mod_python или nginx/lighttpd FastCGI?
Запуск Django с FastCGI или с mod_python
Ответ 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 самостоятельно.