为什么将uWSGI和主管与Flask应用程序一起使用,而不仅仅是主管?

时间:2014-05-08 16:16:05

标签: nginx flask uwsgi supervisord

我通常使用uWSGI和前面的nginx运行我的Flask应用程序。

但我认为只有supervisor和nginx才能实现同样的目标,所以我搜索了很多关于如何设置以及uWSGI-supervisor-nginx堆栈优势的帖子。我决定转向SO,冒着被网上这个问题弄错的风险。

那么在uWSGI,supervisor和nginx之后运行Flask应用程序有什么好处? 为什么显然没有人只使用主管运行Flask应用程序?

2 个答案:

答案 0 :(得分:3)

一个app服务器,如gnicorn或uWSGI(用于托管烧瓶应用程序)与nginx一起使用。 nginx是reverse proxy server,充当中间人。这有助于实现负载平衡 - 通过在资源上分配工作负载来有效地处理多个请求。除此之外,supervisor仅用于监视和控制服务器进程(在我们的示例中为gunicorn或uWSGI)。 根据我的理解,Flask附带的Web服务器(werkzeug server)不是生产就绪的,应该仅用于开发目的。

答案 1 :(得分:0)

一切都与性能有关。通常,像Flask或Django这样的框架构建的服务器是开发环境的设计,当您可以快速轻松地重新加载您更改的代码时。

在生产环境中运行应用程序时,您不必担心经常调试和重新加载代码。您最关心的是性能,安全性和配置。在设置生产环境时,您可以选择uWSGI,Gunicorn,mod_wsgi等等。

你可以在他们之间找到大量有基准的博客文章,并选择最适合你的博客。