python – uWSGI有什么意义?

我正在研究WSGI specification,我正在试图弄清楚像uWSGI这样的服务器是如何适应这种情况的。我理解WSGI规范的重点是将像nginx这样的Web服务器与你使用Flask编写的Web应用程序分开。我不明白的是uWSGI的用途。为什么nginx不能直接调用我的Flask应用程序?烧瓶不能直接说WSGI吗?为什么uWSGI需要介入它们之间?

WSGI规范有两个方面:服务器和Web应用程序。 uWSGI在哪一边?

好的,我想我现在就明白了。

Why can’t nginx directly call my Flask application?

因为nginx不支持WSGI规范。从技术上讲,nginx可以实现WSGI规范,如果他们想要,他们就没有。

在这种情况下,我们需要一个实现规范的Web服务器,这是uWSGI服务器的用途。

请注意,uWSGI是一个完整的http服务器,可以并且确实可以自行运行。我已经多次使用它了,效果很好。如果您需要超高吞吐量的静态内容,那么您可以选择在您的uWSGI服务器前面放置nginx。当你这样做时,他们将通过一个名为uwsgi的低级协议进行通信。

“什么是什么?!另一种叫做uwsgi的东西?!”你问。是的,这令人困惑。当您引用uWSGI时,您正在谈论的是http服务器。当你谈到uwsgi(全部小写)时,你所说的是uWSGI服务器用来与其他服务器(如nginx)通信的binary protocol。他们在这一个上选了一个坏名字。

对于任何有兴趣的人,我写了一篇关于它的blog article,有更多具体内容,一些历史和一些例子。

https://stackoverflow.com/questions/38601440/what-is-the-point-of-uwsgi

转载注明原文:python – uWSGI有什么意义?