试图理解 WSGI 的阻塞性质

Trying to understand the blocking nature of WSGI

我有一个这样的网络应用程序设置:

nginx <--> gunicorn <--> flask

我相信 nginx 可以服务很多并发连接。但是听说从WSGI网关到flask app,是阻塞的。 IE。一次只能处理一个请求。我读了here。我的问题是:为什么 nginx 不能调用 gunicorn 的另一个实例(不确定这是不是正确的术语)并并行处理多个请求?

这根本不是真的,Gunicorn(和所有其他 WSGI 应用程序服务器)可以(并且应该)配置为使用多个线程、进程或 eventlet,具体取决于特定 WSGI 服务器的并发模型。每个进程中的每个线程(或事件小程序)一次向应用程序发送一个请求 运行。

Nginx 不会启动第一个或任何后续的 WSGI 进程。您启动正确配置的 WSGI 服务器,它会处理并发。 Nginx 尽可能同时将请求分派到它配置为代理的任何应用程序。