Deployment 部署挂架应用程序的最佳方式是什么?

Deployment 部署挂架应用程序的最佳方式是什么?,deployment,pylons,wsgi,Deployment,Pylons,Wsgi,有许多方法可以部署挂架应用程序。 -通过apache或nginx代理以粘贴 -使用mod_wsgi嵌入应用程序 -使用一些前卫的nginx+uwsgi组合 -也许更多 我读了很多关于各种方法的书,但没有真正决定选择哪一种 通过nginx代理粘贴似乎是最简单的设置方法,但它是否有效?粘贴不会比mod_wsgi或uswgi慢吗?如果是这样,那么性能的提高是否值得这么麻烦 需要一些专家帮我选择最好的折衷方案。。。 我想要简洁,但我需要体面(如果不是尖端的话)的表现,而你,欧比旺·克诺比,是我唯一的希望

有许多方法可以部署挂架应用程序。 -通过apache或nginx代理以粘贴 -使用mod_wsgi嵌入应用程序 -使用一些前卫的nginx+uwsgi组合 -也许更多

我读了很多关于各种方法的书,但没有真正决定选择哪一种

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

需要一些专家帮我选择最好的折衷方案。。。
我想要简洁,但我需要体面(如果不是尖端的话)的表现,而你,欧比旺·克诺比,是我唯一的希望;)

最好的答案是,视情况而定

从纯粹的简单性角度来看,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。

如果性能是最重要的,请查看一些测试:


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

无论我对repose.who/what使用哪种部署方法,我发现很难在每个CPU核心每秒扩展280个请求

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

其他隐藏变量包括Python版本。在一些发行版中,我发现Python2.5比Python2.6快一点,这取决于应用程序的功能

免责声明:

  • 塔架并不慢
  • mod_wsgi和uwsgi性能差异在生产设置中可以忽略不计
  • Nginx的静态文件性能优于apache
  • 如果不需要mod_php,Apache/mpm worker比mod prefork快得多
  • 几乎你所了解的任何部署都可能足以满足99%的网络应用
  • 99%的已发布基准没有正确测试环境。点击一页10000次并不代表真实世界的表现
  • 在深夜发帖时尽力帮忙是行不通的。我知道当我在tweetdeck上看到这个消息时,我应该什么都不说

嗯。web服务器和挂架之间的网关实际上永远不会成为瓶颈。托管机制的开销(至少CGI除外)非常小,以至于在实际系统(不是hello world程序)中,不同托管机制之间几乎没有差别。相反,瓶颈将是应用程序、渲染系统和数据库。不确定你的意思是什么,但听起来并不正确。似乎链接已经失效。