2010-08-28 87 views
7

有很多方法可以部署Pylons应用程序。 - 代理功能通过Apache或nginx的粘贴 - 嵌入应用程序与mod_wsgi的 - 使用一些前卫的nginx + uwsgi组合 - 也许更多...部署Pylons应用程序的最佳方式是什么?

我读过很多关于各种方法,但未能真正决定选择哪一个。

代理通过nginx粘贴似乎是最简单的方法来设置,但它是否有效?不会粘贴比mod_wsgi或uswgi慢?如果是这样,性能增加是否值得麻烦?

需要一些高手帮我选择最好的妥协...... 我想简单,但我需要体面的(如果不切边)的性能,而你,欧比旺·克诺比,是我唯一的希望;)

回答

1

最好的答案是,这取决于。

从纯粹的简单性角度来看,apache2/mod_wsgi可能是最容易管理的,因为您拥有更多的理解apache的人。

从性能的角度来看,这取决于。

如果您的应用程序非常庞大且不是非常静态的内容(css,images),webserver和pylon之间的网关更可能是您的瓶颈,几乎所有的部署都可以处理这个问题。

粘贴相当快。我发现nginx/uwsgi的接口比apache2/mod_wsgi稍快。 nginx的静态文件性能和内存要求也支持nginx。

有我遇到的是说说两者的几个网站:

tonylandis.com/python/deployment-howt-pylons-nginx-and-uwsgi/ cd34.com/blog/programming/蟒蛇/挂架和Facebook的应用程序布局/ code.google.com/p/modwsgi/wiki/IntegrationWithPylons

的比较,我已经做了与Apache2的/ MPM工人,而不是MPM-prefork的我在我的设置中不需要mod_php5。

+0

呵呵。 Web服务器和Pylons之间的网关几乎不会成为瓶颈。托管机制的开销(除CGI之外)至少是如此之小,以至于在实际系统(而非世界性的Hello程序)的实践中,不同的托管机制之间几乎没有什么区别。相反,瓶颈将是应用程序,渲染系统和数据库。不知道你的意思是什么,但它确实没有听起来正确。 – 2010-08-30 12:01:58

2

我想说的是,如果应用程序是多框架依赖比静态内容相关的限制因素将是Web服务器 - >框架,我发现nginx-> uwsgi-> pylons和apache2/mpm-worker-> mod_wsgi-> pylons的性能可以忽略不计,因为限制因素是Pylons。这并不意味着主塔很慢。

无论我使用repoze.who /什么的部署方法,我发现很难扩展到每个CPU核心每秒280个请求。

@mkucharz,至于那些表现的结果,那些结果已经三年了,甚至没有接近今天的配置。 Pylons 1.0比0.9快10%左右,flup更加成熟,并且不能测试uwsgi或mod_wsgi。它也使用强大而不是Mako,也指向测试的年龄。

其他隐藏变量包括Python的版本。在某些发行版中,我发现Python 2.5比Python 2.6快一些,具体取决于应用程序的功能。

免责声明:

  • 塔也不慢。
  • mod_wsgi和uwsgi在生产设置中的性能差异可以忽略不计。
  • Nginx的静态文件性能比apache好。
  • 如果不需要mod_php,Apache/mpm-worker比mod-prefork快得多。
  • 几乎所有你理解的部署对于99%的web应用程序来说都足够了。
  • 已发布基准的99%未正确测试环境。击中一页10000次并不代表现实世界的表现。
  • 当在深夜发帖永不起作用时,试图提供帮助。我知道当我看到这个在tweetdeck上出现时,我应该什么也没说。
相关问题