部署Pylons应用程序的方法有很多种。 - 通过apache或nginx代理粘贴 - 使用mod_wsgi嵌入应用程序 - 使用一些前卫的nginx + uwsgi组合 - 可能更多......
我已经阅读了很多关于各种方法但未能真正决定选择哪一种方法。
代理通过nginx粘贴似乎是最容易设置的方法,但它是否有效?不会粘贴比mod_wsgi或uswgi慢吗?如果是这样,性能提升是否值得麻烦?
需要一些专家来帮助我选择最好的妥协方案...... 我想要简单,但我需要体面(如果不是最前沿)的表现,而你,Obiwan Kenobi,是我唯一的希望;)
答案 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快一点,具体取决于应用程序的功能。
免责声明:
答案 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。