为什么在Flask应用中要使用uWSGI和supervisor,而不只是使用supervisor?

7
我通常使用uWSGI和nginx来运行我的Flask应用程序。
但我正在思考是否可以只使用supervisor和nginx实现相同的功能,因此我在Google上搜索并找到了许多关于如何设置和使用uWSGI-supervisor-nginx堆栈的文章。我决定转向SO,冒着因此问题而被斥责的风险。
那么,使用uWSGI、supervisor和nginx来运行Flask应用程序有哪些好处呢?为什么似乎没有人只使用supervisor来运行Flask应用程序呢?

1
这个问题似乎不适合放在 Stack Exchange 网络的本站,因为它与编程无关。或许应该考虑发布到 Super User 或者 Server Fault 上。 - jww
2个回答

3

使用像gnicorn或uWSGI这样的应用服务器(用于托管Flask应用程序)与nginx一起使用。 nginx是一个反向代理服务器,充当中间人。这有助于负载平衡-通过在资源上分配工作负载来高效地处理多个请求。除此之外,supervisor仅用于监视和控制服务器进程(在我们的示例中为gunicorn或uWSGI)。 据我了解,Flask附带的Web服务器(werkzeug server)不适合生产环境,应仅用于开发目的。


0

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

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

您可以找到许多博客文章,其中包含它们之间的基准测试,并选择最适合您的一个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接