Python Flask Gunicorn Nginx设置在引擎盖下如何工作?

Python Flask Gunicorn Nginx设置在引擎盖下如何工作?,python,python-3.x,nginx,gunicorn,Python,Python 3.x,Nginx,Gunicorn,我想知道这个请求到底是怎么处理的,我是说,我想是这样的: Nginx接收请求,根据配置进行初始处理,并传递给Gunicorn Gunicorn接收它,并使用请求数据启动Flask应用程序的实例 Flask应用程序接收请求数据,并执行其编程的工作 是这样的吗?Flask应用程序的新实例是否会在每次请求时启动?不太可能。基本上,flask是webapp,它在gunicorn启动时加载 此时,flask应用程序已启动并运行,gunicorn本身可以通过在其python进程内将请求发送到flask应

我想知道这个请求到底是怎么处理的,我是说,我想是这样的:

  • Nginx接收请求,根据配置进行初始处理,并传递给Gunicorn

  • Gunicorn接收它,并使用请求数据启动Flask应用程序的实例

  • Flask应用程序接收请求数据,并执行其编程的工作


是这样的吗?Flask应用程序的新实例是否会在每次请求时启动?

不太可能。基本上,flask是webapp,它在gunicorn启动时加载

此时,flask应用程序已启动并运行,gunicorn本身可以通过在其python进程内将请求发送到flask应用程序来响应请求(即,无网络流量)

Nginx位于gunicorn之上,代理客户端和gunicorn之间的请求,因为gunicorn不是web服务器

So nginx->gunicorn->烧瓶(由gunicorn自身装载)

当gunicorn启动时,它会自行加载并初始化flask应用程序。对每个请求都这样做会非常缓慢


Nginx只是代理gunicorn的监听端口。它本身不加载Flask应用程序,这实际上是一个符合WSGI的Python Web应用程序。

谢谢您的时间。你能详细说明一下Gunicorn是如何在这个设置上工作的吗?你有什么问题吗?一般来说,它的工作原理如上所述。