我有一个像这样的网络应用程序设置:
nginx <--> gunicorn <--> flask
我相信nginx可以提供大量的并发连接。但我听说从WSGI网关到烧瓶应用程序,它是阻塞的。即一次只能提供一个请求。我读了here。我的问题是:为什么nginx不能调用gunicorn的另一个实例(不确定这是否是正确的术语)并且并行处理多个请求?
答案 0 :(得分:2)
根本不是这样,Gunicorn(以及所有其他WSGI应用服务器)可以(并且应该)配置为使用多个线程,进程或eventlet,具体取决于特定的WSGI服务器的并发模型。每个进程中的每个线程(或eventlet)一次将一个请求分派给正在运行的应用程序。
Nginx无法启动第一个或任何后续的WSGI进程。您启动WSGI服务器,配置正确,并处理并发。 Nginx会将请求同时调度到它配置为代理的任何应用程序。