部署Pylons应用程序的最佳方式是什么?

时间:2010-08-28 23:00:46

标签: deployment pylons wsgi

部署Pylons应用程序的方法有很多种。 - 通过apache或nginx代理粘贴 - 使用mod_wsgi嵌入应用程序 - 使用一些前卫的nginx + uwsgi组合 - 可能更多......

我已经阅读了很多关于各种方法但未能真正决定选择哪一种方法。

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

需要一些专家来帮助我选择最好的妥协方案...... 我想要简单,但我需要体面(如果不是最前沿)的表现,而你,Obiwan Kenobi,是我唯一的希望;)

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

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

无论我使用repoze.who / what使用哪种部署方法,我都发现很难扩展每CPU内核每秒280个请求的数量。

@mkucharz,至于那些性能结果,这些结果已有三年历史,甚至还没有接近今天存在的配置。 Pylons 1.0比0.9快约10%,flup更成熟,并且不测试uwsgi或mod_wsgi。它也使用了Mighty而不是Mako,也指向了测试的年龄。

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

免责声明:

  • Pylons并不慢。
  • mod_wsgi和uwsgi在生产环境中的性能差异可以忽略不计。
  • Nginx的静态文件性能优于apache。
  • 如果不需要mod_php,Apache / mpm-worker比mod-prefork快得多。
  • 您理解的几乎所有部署都可能足以满足99%的Web应用程序。
  • 99%的已发布基准测试未正确测试环境。点击页面10000次并不表示现实世界的表现。
  • 在深夜发帖时努力提供帮助永远不会有效。我知道当我看到这个出现在tweetdeck时,我应该什么也没说。

答案 2 :(得分:1)

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

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

从表现的角度来看,这取决于。

如果您的应用程序非常庞大而且非常静态的内容(css,图像)密集,那么Web服务器和挂架之间的网关更可能是您的瓶颈,几乎任何部署都可以处理它。

粘贴相当快。我发现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。