Существует много способов развертывания приложений Pylons. - Прокси через apache или nginx для вставки - Встраивание приложения с помощью mod_wsgi - используя некоторые острые комбо nginx + uwsgi - и, вероятно, больше ...
Я много читал о различных подходах, но не смог действительно решить, какой из них выбрать.
Прокси-вставка через nginx, кажется, самый простой способ настройки, но так ли это? эффективный? Не будет ли вставлять медленнее, чем mod_wsgi или uswgi? Если да, стоит ли увеличивать производительность?
Нужны эксперты, чтобы помочь мне выбрать лучший компромисс ... Я хочу простоты, но мне нужна приличная (если не ультрасовременная) производительность, и вы, Обиван Кеноби, моя единственная надежда;)
Если производительность важнее всего, посмотрите некоторые тесты:
http://wiki.pylonshq.com/display/pylonscookbook/Some+performance+test+results
Лучший ответ: зависит.
С точки зрения простоты, apache2/mod_wsgi, вероятно, является самым простым в управлении, так как у вас гораздо больше людей, которые понимают apache.
С точки зрения производительности, это зависит.
Если ваше приложение сильно загружено фреймворком и не очень активно использует статический контент (CSS, изображения), шлюз между веб-сервером и пилонами, скорее всего, является вашим узким местом, и почти любое развертывание может справиться с этим.
Вставить довольно быстро. Я обнаружил, что интерфейс nginx/uwsgi немного быстрее, чем apache2/mod_wsgi. Производительность статических файлов nginx и требования к памяти также благоприятствуют nginx.
Я наткнулся на несколько сайтов, где говорится об обоих:
tonylandis.com/python/deployment-howt-pylons-nginx-and-uwsgi/ cd34.com/blog/programming/python/pylons-and-facebook-application-layout/ code.google.com/p/modwsgi/wiki/IntegrationWithPylons
Я проводил сравнения с apache2/mpm-worker, а не с mpm-prefork, поскольку мне не нужен mod_php5 в моей настройке.
Я хотел сказать, что если приложение больше зависит от фреймворка, чем от статического контента, ограничивающим фактором будет веб-сервер -> фреймворк, и я обнаружил незначительные различия в производительности nginx -> uwsgi -> pylons и apache2/mpm-worker -> mod_wsgi -> pylons, поскольку ограничивающим фактором являются пилоны. Это не означает, что Pylons медленные.
Независимо от того, какой метод развертывания я использовал с repoze.who/what, мне было трудно масштабировать более 280 запросов в секунду на ядро ЦП.
@mkucharz, Что касается этих результатов производительности, то этим результатам уже три года, и они даже близко не приближаются к существующим сегодня конфигурациям. Pylons 1.0 примерно на 10% быстрее, чем 0.9, flup гораздо более зрелый, и он не тестирует uwsgi или mod_wsgi. Он также использует Майти, а не Мако, что также указывает на возраст теста.
Другие скрытые переменные включают версию Python. Я обнаружил, что в некоторых дистрибутивах Python 2.5 работает немного быстрее, чем Python 2.6, в зависимости от того, что делает приложение.
Отказ от ответственности: