2008-10-28 2 views

ответ

21

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

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

Предпочитаете ли вы предпочтение Apache/mod_wsgi, почти 2.5 года спустя? – Dolph 2011-03-03 18:57:44

2

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

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

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

6

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

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

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

2

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

2

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

2

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

Однако в настоящее время существует known issues with some apps and apache mod_wsgi, в частности, некоторые приложения ctypes, поэтому будьте осторожны, если вы пытаетесь запустить, скажем, geodjango, который широко использует ctypes. В настоящее время я работаю над этими проблемами, возвращаясь к fastcgi.

Смежные вопросы